JustOj 1036: 习题6.11 迭代法求平方根
题目描述
用迭代法求 。求平方根的迭代公式为: X[n+1]=1/2(X[n]+a/X[n]) 要求前后两次求出的得差的绝对值少于0.00001。 输出保留3位小数
输入
X
输出
X的平方根
样例输入
4
样例输出
2.000
题解:这题学校oj还是测不了 姑且认为是对的吧
1 #include <iostream> 2 #include <math.h> 3 #include <stdio.h> 4 using namespace std; 5 float mSqrt(float n){ 6 float r=0x5f3759df; 7 while(fabs(r*r-n)>=0.00001){ 8 float t=n/r; 9 r=(t+r)/2; 10 } 11 return r; 12 } 13 int main(){ 14 float n; 15 scanf("%f",&n); 16 printf("%.3f\n",mSqrt(n)); 17 return 0; 18 }