您的位置:首页 > 其它

LeetCode 69 Sqrt(x)

2016-07-28 22:24 465 查看
Implement 
int sqrt(int x)
.

Compute and return the square root of x.

牛顿迭代法:关于牛顿迭代法,详解http://blog.csdn.net/niuooniuoo/article/details/51787807

public int mySqrt(int x) {
if (x == 0) return 0;
double last = 0.0;
double res = 1.0;
while (res != last) {
last = res;
res = (res + x / res) / 2;
}
return (int) res;
}


二分查找法

int sqrt(int x) {
long i = 0, j = x / 2 + 1;
while (i <= j) {
long mid = (i + j) / 2;
long sq = mid * mid;
if (sq == x) return (int) mid;
else if (sq < x) i = mid + 1;
else j = mid - 1;
}
return (int) j;
}


详解参考:http://www.cnblogs.com/AnnieKim/archive/2013/04/18/3028607.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  leetcode