
题目
求解Sqrt(x)返回整数结果
分析
方法一利用二分查找,否则会超时
方法二牛顿迭代公式,此方法可以返回相对精准的double结果
C++代码实现
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
class Solution { public: int (int x) { if(x == 0) return 0; int e = x / 2 + 1; int s = 1; while(s <= e){ int mid = s + (e-s)/2; long long sq = (long long)mid * (long long)mid; if(sq == x) return mid; if(sq < x) s = mid + 1; else e = mid - 1; } return e; } };
|
近期评论