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 }
posted @ 2017-08-01 10:40  wydxry  阅读(409)  评论(0编辑  收藏  举报
Live2D