牛顿迭代法
https://blog.youkuaiyun.com/hnu2012/article/details/72598038
https://www.cnblogs.com/liujinhong/p/6014973.html
//牛顿法 class Solution { public: int mySqrt(int x) { if (x <= 1) return x; double x1 = 0, x2 = 1; while (abs(x1 - x2) > 0.000001) { x1 = x2; x2 = x1 / 2 + (double)x / (2 * x1); } return (int)x1; } }; //二分查找法 class Solution { public: int mySqrt(int x) { if (x <= 1) return x; int left = 0, right = x; while (left < right) { int mid = left + (right - left) / 2; if (x / mid >= mid) left = mid + 1; else right = mid; } return right - 1; } };