题目描述
Implementint sqrt(int x).
Implementint sqrt(int x).
Compute and return the square root of x.
这个,2分法
class Solution {
public:
int sqrt(int x) {
if( x == 1 || x == 0)
return x;
int left = 1;
int right = x;
int tmp;
for(;left <= right;)
{
tmp = (left+right)/2;
if(x/tmp == tmp)
break;
else if(x/tmp > tmp)
left = tmp + 1;
else
right = tmp - 1;
}
tmp = (left+right)/2;
return tmp;
}
};
牛客大神用牛顿逼近法,贴一下
class Solution {
public:
int sqrt(int x) {
long r = x;
while (r*r > x)
r = (r + x/r) / 2;
return r;
}
};