4.牛顿迭代法求平方根
公式:x(n+1)=(xn+a/xn)/2,x0=a/2 要求当x0-x1<0.000001时x1才满足结果为sqrt(a)
代码如下:
#include<stdio.h>
double Get_Sqrt(double a){
double x0=a/2;
double x1=(x0+a/x0)/2;
while(x0-x1>0.0000000001){ //满足x0-x1<0.000001(小数点后0越多越准确!!!)
x0=x1;
x1=(x0+a/x0)/2;
}
return x1;
}
int main(){
double a=0.0; //涉及除法运算,不要定义int型变量!最好定义double类型(float类型也可以)!!
printf("Please input a number:\n");
scanf("%lf",&a);
printf("sqrt(%lf)=%.10lf\n",a,Get_Sqrt(a));
return 0;
}
ps:注释可以帮我们更好的理解代码!
运行结果如下:
加油!!😆