这个程序使用迭代法求一个数的平方根,迭代公式为 x(n+1) = 1/2 [x(n) + a / x(n)]
。
用迭代法求x=a^0.5(0.5次方,即a的平方根),求平方根的迭代公式为:x(n+1)=1/2[x(n)+a/x(n)]。 x(n+1)和x(n)是指x的第n+1项和x的第n项。 要求前后两次求出的差的绝对值小于10^-5。
#include <stdio.h>
#include <math.h>
int main() {
double a, x, epsilon = 1e-5;
printf("输入一个正数 a: ");
scanf("%lf", &a);
x = a / 2.0; // 初始猜测值
double x_next;
do {
x_next = 0.5 * (x + a / x);
if (fabs(x_next - x) < epsilon) {
break;
}
x = x_next;
} while (1);
printf("平方根: %.5f\n", x_next);
return 0;
}
代码说明:
- 初始猜测值设为
a / 2
。 - 不断更新
x
,直到前后两次的差值小于epsilon
。 - 使用
fabs
函数计算绝对值差。