题目
代码
牛顿迭代法—学过数值分析的应该都会,不会的百度也会
class Solution {
public int mySqrt(int x) {
if (x == 0) return 0;
double C = x, x0 = 2; //2是随便给的一个起始值,c是平方值即x
while (true) {
double xi = 0.5 * (x0 + C / x0);
if (Math.abs(x0 - xi) < 1e-7) break;
x0 = xi;
}
return (int) x0;
}
}
class Solution {
public int mySqrt(int x) {
if(x==0) return 0;
long sqr = x;
while(sqr*sqr>x) {
sqr = (sqr+x/sqr)/2;
}return (int)sqr;
}
}