题目描述
实现函数 int sqrt(int x).
计算并返回x的平方根
示例1
输入
2
输出
1
class Solution {
public:
/**
*
* @param x int整型
* @return int整型
*/
int sqrt(int x) {
// write code here
if(x <= 1) return x;
int begin = 1;
int end = x;
int mid = 0;
while(begin <= end){
mid = (begin+end)/2;
if(mid == x/mid){//防止溢出
return mid;
}else{
if(mid < x/mid){
begin = mid+1;
}else{
end = mid-1;
}
}
}
//结束条件end一定<begin,所以返回end
return end;
}
};
求sqrt,精度到小数点后两位
double mysqrt(int n){
if(n==0||n==1) return n;
double res=0.0;
double l=1,r=n;
while(abs(res*res-n)>0.01){
res=(l+r)/2.0;
if(res*res==n) return res;
else if(res*res>n) r=res;
else l=res;
}
return res;
}