[LeetCode-69] Sqrt(x)(求解平方根)
2015-10-29 21:17
477 查看
Implement
Compute and return the square root of x.
这道题一看到函数的定义int sqrt(int x)都是int就高兴了,直接二分吧。但是要注意,即使用long long都越界,还要用unsigned long long。最后返回值还要再检查一下。
http://blog.csdn.net/doc_sgl/article/details/12404971
int mySqrt(int x)
{
// Start typing your C/C++ solution below
// DO NOT write int main() function
unsigned long long begin = 0;
unsigned long long end = (x+1)/2;
unsigned long long mid;
unsigned long long tmp;
while(begin < end) {
mid = begin + (end-begin)/2;
tmp = mid*mid;
if(tmp==x)
return mid;
else if(tmp<x)
begin = mid+1;
else
end = mid-1;
}
tmp = end*end;
if(tmp > x)
return end-1;
else
return end;
}
如果是double 或者 float 类型时
需要使用---->牛顿迭代法
int sqrt(int x).
Compute and return the square root of x.
这道题一看到函数的定义int sqrt(int x)都是int就高兴了,直接二分吧。但是要注意,即使用long long都越界,还要用unsigned long long。最后返回值还要再检查一下。
http://blog.csdn.net/doc_sgl/article/details/12404971
int mySqrt(int x)
{
// Start typing your C/C++ solution below
// DO NOT write int main() function
unsigned long long begin = 0;
unsigned long long end = (x+1)/2;
unsigned long long mid;
unsigned long long tmp;
while(begin < end) {
mid = begin + (end-begin)/2;
tmp = mid*mid;
if(tmp==x)
return mid;
else if(tmp<x)
begin = mid+1;
else
end = mid-1;
}
tmp = end*end;
if(tmp > x)
return end-1;
else
return end;
}
如果是double 或者 float 类型时
需要使用---->牛顿迭代法
相关文章推荐
- leetcode 179 Largest Number
- leetcode 24 Swap Nodes in Pairs
- leetcode 2 Add Two Numbers 方法1
- leetcode 2 Add Two Numbers 方法2
- [LeetCode]47 Permutations II
- [LeetCode]65 Valid Number
- [LeetCode]123 Best Time to Buy and Sell Stock III
- [LeetCode] String Reorder Distance Apart
- [LeetCode] Sliding Window Maximum
- [LeetCode] Find the k-th Smallest Element in the Union of Two Sorted Arrays
- [LeetCode] Determine If Two Rectangles Overlap
- [LeetCode] A Distance Maximizing Problem
- leetcode_linearList
- leetcode_linearList02
- 021-Merge Two Sorted Lists(合并两个排好序的单链表);leetcode
- LeetCode[Day 1] Two Sum 题解
- LeetCode[Day 2] Median of Two Sorted Arrays 题解
- LeetCode[Day 3] Longest Substring Without... 题解
- LeetCode [Day 4] Add Two Numbers 题解
- LeetCode [Day 5] Longest Palindromic Substring 题解