for语句实现算术平方根
时间: 2024-05-09 11:18:36 浏览: 91
以下是使用for语句实现算术平方根的Python代码:
```python
def square_root(num):
for i in range(num):
if i*i == num:
return i
elif i*i > num:
return (i-1) + ((num - (i-1)*(i-1)) / (2*(i-1)))
return num
print(square_root(9)) # 输出3.0
print(square_root(16)) # 输出4.0
print(square_root(25)) # 输出5.0
print(square_root(2)) # 输出1.4142135623730951
```
该函数接受一个数字作为参数,并返回其算术平方根。它使用for循环来逐个测试可能的平方根,直到找到一个平方根或找到一个比目标数字大的平方数。如果找到一个平方根,它将直接返回该值。如果找到一个比目标数字大的平方数,它将使用牛顿迭代法来近似计算平方根,并返回该值。如果没有找到平方根,则返回原始数字。
相关问题
计算非负数$x$的算术平方根,要求采用for语句、while语句和
do-while语句三种循环结构分别实现。
for语句实现:
```
#include <stdio.h>
int main()
{
int x, i;
printf("请输入一个非负整数:");
scanf("%d", &x);
for(i = 0; i * i <= x; i++);
printf("%d的算术平方根为%d\n", x, i - 1);
return 0;
}
```
while语句实现:
```
#include <stdio.h>
int main()
{
int x, i = 0;
printf("请输入一个非负整数:");
scanf("%d", &x);
while(i * i <= x)
{
i++;
}
printf("%d的算术平方根为%d\n", x, i - 1);
return 0;
}
```
do-while语句实现:
```
#include <stdio.h>
int main()
{
int x, i = 0;
printf("请输入一个非负整数:");
scanf("%d", &x);
do
{
i++;
}while(i * i <= x);
printf("%d的算术平方根为%d\n", x, i - 1);
return 0;
}
```
编写程序,计算非负数$x$的算术平方根, 要求采用三种实现: 1) for语句; 2) while语句; 3) do-while语句.
1) for语句实现算术平方根:
```c++
#include <iostream>
#include <cmath>
using namespace std;
int main() {
double x;
cout << "请输入非负数x:";
cin >> x;
double sqrt_x = -1; // 初始化sqrt_x为-1
for (double i = 0; i <= x; i += 0.001) {
if (abs(i * i - x) < 0.001) { // 判断i是否为平方根
sqrt_x = i;
break;
}
}
if (sqrt_x == -1)
cout << "计算失败!" << endl;
else
cout << "算术平方根为:" << sqrt_x << endl;
return 0;
}
```
2) while语句实现算术平方根:
```c++
#include <iostream>
#include <cmath>
using namespace std;
int main() {
double x;
cout << "请输入非负数x:";
cin >> x;
double sqrt_x = -1; // 初始化sqrt_x为-1
double i = 0;
while (i <= x) {
if (abs(i * i - x) < 0.001) { // 判断i是否为平方根
sqrt_x = i;
break;
}
i += 0.001;
}
if (sqrt_x == -1)
cout << "计算失败!" << endl;
else
cout << "算术平方根为:" << sqrt_x << endl;
return 0;
}
```
3) do-while语句实现算术平方根:
```c++
#include <iostream>
#include <cmath>
using namespace std;
int main() {
double x;
cout << "请输入非负数x:";
cin >> x;
double sqrt_x = -1; // 初始化sqrt_x为-1
double i = 0;
do {
if (abs(i * i - x) < 0.001) { // 判断i是否为平方根
sqrt_x = i;
break;
}
i += 0.001;
} while (i <= x);
if (sqrt_x == -1)
cout << "计算失败!" << endl;
else
cout << "算术平方根为:" << sqrt_x << endl;
return 0;
}
```
阅读全文