【算法练习】 迭代法求平方根——公式:求a的平方根的迭代公式为: X[n+1]=(X[n]+a/X[n])/2 要求前后两次求出的差的绝对值少于0.00001。 输出保留3位小数
此代码位c语言会超时
#include <stdio.h> #include <math.h>//fabs() 绝对值函数 int main(){ double x,a,b; scanf("%lf",&x); a = x/2; while(1){ b = (a + x/a)/2; if(fabs(b - a) < 0.00001){ break; a = b; } } printf("%.3lf\n",b); return 0; }
C++代码正确
#include"iostream" #include"cmath" //调用求绝对值函数 fabs(); #include"cstdio" //使用格式化输出printf(); using namespace std; int main(){ double x,b,c; cin>>x; b=x/2; while(1){ c=(b+x/b)/2; if(fabs(c-b)<0.00001) break; b=c; } printf("%.3lf\n",c); return 0; }