牛顿迭代法求x的平方根
#include<stdio.h>
#include<math.h>
int main()
{
float x1,x,x0;
while (~scanf("%f",&x))
{
x1 = x/2;
while ((fabs(x1-x0)) >= 0.00001)
{
x0 = x1;
x1 = (x0+x/x0)/2;
}
printf("%.3f",x1);
}
}
思路:两个变量按照规律交替传值,注意最后输出的是x1的值,即最后的迭代值,同时要注意绝对值函数的应用,否则会出现问题,难道是在真值附近出现摆动了?求高手解答!