Implement int sqrt(int x).
Compute and return the square root of x.
先举几个例子:
1的平方根是1
1的平方根是1
2的平方根是1
3的平方根是1
4的平方根是2
所以,当x>=1时,它的平方根应该在[1, x/2+1]内,
当x>=2时,它的平方根在[1,x/2]内,
这两个结论都可以构造二分查找来“试”结果,以第二种结论为例:
int sqrt(int x){
if(x<=0)
return 0;
if(x==1)
return 1;
int i=1;
int j=x/2;
while(i<=j){
int k=i+(j-i)/2;
long long m=((long long)k*(long long)k);
if(m==x)
return k;
else if(m<x)
i=k+1;
else
j=k-1;
}
return j;
}由于平方根是取下届,所以最后取j
实现整数平方根函数
本文介绍了如何通过二分查找算法实现整数平方根函数,包括平方根的数学概念、算法设计、代码实现及示例解析。
8987

被折叠的 条评论
为什么被折叠?



