有迭代法求某正整数a平方根x1,一指求平方根的迭代公式为:x0=a/2; x1=(x0+a/x0)/2;
问题描述:
有迭代法求某正整数a平方根x1,一指求平方根的迭代公式为:x0=a/2; x1=(x0+a/x0)/2;
#include "math.h"
main()
{
float a;
double x0,x1;
scanf("%f",&a);
if (a1e-5);
}
printf("%lf",x1);
getch();
}
这个程序是怎么执行的;
循环中x0=x1; x1=(x0+a/x0)/2;这样不就x0=x1了吗?
do 里面是怎么循环的?
答
x0=x1是用x0暂存x1在第n-1次迭代时的值,用于后面计算第n次迭代与n-1此迭代的差值,如果差值满足fabs(x0-x1)>1e-5,迭代结束.即,求出x1的近似值!