原题链接
实现 int sqrt(int x) 函数。
class Solution {
int s;
public int mySqrt(int x) {
s=x;
return (int)sqrt(x);
}
double sqrt(double x){
if(x==0)
return 0;
double res=(x+s/x)/2;
return Math.abs(res-x)<1e-6? res:sqrt(res);
}
}
二分法
class Solution {
public int mySqrt(int x) {
int left=0;
int right=x;
int mid=(x)/2;
while (left<right){
if ((long)mid*mid>x){
right=mid-1;
}
else
left=mid;
mid=(left+right+1)>>1;
}
return left;
}
}