
解法:牛顿迭代法
先上公式。对于x2=nx^2=nx2=n
迭代公式为:
xk+1=xk+nxk2x_{k+1}=\frac{x_k+\frac{n}{x_k}}{2}xk+1=2xk+xkn
推导过程见数值分析、计算方法等相关书籍。
int mySqrt(int n){
if(0 == n) return 0;
double x0 = 2;
double eps = 0.1;
double x1;
for(;;)
{
x1 = (x0 + n/x0)/2;
if(fabs(x1-x0) < eps) break;
x0 = x1;
}
return (int)x1;
}
这篇博客介绍了如何运用牛顿迭代法求解整数的平方根。通过迭代公式x_{k+1}
168万+

被折叠的 条评论
为什么被折叠?



