用牛顿迭代法求某正数n的平方根

时间:2023-01-07 21:39:10

求n的平方根,先假设一猜测值X0 = 1,然后根据以下公式求出X1,再将X1代入公式右边,
继续求出X2…通过有效次迭代后即可求出n的平方根,
Xk+1=(Xk+n/Xk)/2
(当Xk+1-Xk绝对值小于0.00001停止迭代,结果就可以保留相应的几位小数)

#include <iostream>
#include <math.h>
using namespace std;
int fun(int n,double x1)
{
double x2;
x2=(x1+n/x1)/2;
double a=fabs(x2-x1);
if(a>0.00001)
{
x1=x2;
return fun(n,x1);
}
else
{
cout<<x2<<endl;
}


}
int main ()
{
int n;
double x1=1;
cin>>n;
fun(n,x1);
return 0;
}