码迷,mamicode.com
首页 > 其他好文 > 详细

X的平方根(二分)

时间:2018-01-20 13:56:13      阅读:437      评论:0      收藏:0      [点我收藏+]

标签:格式   img   otto   detail   click   csharp   play   iostream   ace   

设计函数int sqrt(int x),计算 xx 的平方根。

输入格式

输入一个 整数 xx,输出它的平方根。直到碰到文件结束符(EOF)为止。

输出格式

对于每组输入,输出一行一个整数,表示输入整数的平方根。

样例输入

1
2
3
4
5
6
7
8
9

样例输出

1
1
1
2
2
2
2
2
3

 

分析:牛顿迭代法

牛顿迭代法求平方根,主要是利用二次函数上的点的切线,与x轴的交点,然后再用x对应的函数图像上的点,做切线,不断的迭代,知道满足一个指定的精确度。

迭代公式

(x0 + a/x0)/2

  

技术分享图片
 1 #include <iostream>
 2 #include <cmath>
 3 #include <cstdio>
 4 using namespace std;
 5 
 6 int sqrt(int x){
 7     double t = 1.0;
 8     while(fabs(t * t - x) > 1e-6){
 9         t = (t + x / t) / 2;
10     }//牛顿迭代法
11     return t;
12 }
13 
14 int main(){
15     int x;
16     while(scanf("%d", &x) != EOF){
17         printf("%d\n",sqrt(x));
18     }
19     return 0;
20 }
View Code

 

X的平方根(二分)

标签:格式   img   otto   detail   click   csharp   play   iostream   ace   

原文地址:https://www.cnblogs.com/ruruozhenhao/p/8320453.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!