顺序查找和二分法都会超时间,需要用牛顿迭代,解方程x2=n 令f(x)=x2-n,则牛顿迭代式是xi+1=xi-f(x)/f(x)导。
这题里化简后是xi+1=(xi+x/xi)/2;
int mySqrt(int x) {
long res=x;
while(res*res>x)
res=(res+x/res)/2;
return res;
}
顺序查找和二分法都会超时间,需要用牛顿迭代,解方程x2=n 令f(x)=x2-n,则牛顿迭代式是xi+1=xi-f(x)/f(x)导。
这题里化简后是xi+1=(xi+x/xi)/2;
int mySqrt(int x) {
long res=x;
while(res*res>x)
res=(res+x/res)/2;
return res;
}