题意理解
求一个非负整数的平方根
问题分析
用牛顿法 推导出递推公式 x = 1/2 * (x0 + a/x0)。其中 a是非负整数,x是平方根。 每次计算出来的x,判断平方和是否接近a,用1e-6来控制误差。
其他
https://leetcode-cn.com/problems/sqrtx/solution/er-fen-cha-zhao-niu-dun-fa-python-dai-ma-by-liweiw/
链接
class Solution {
public:
int mySqrt(int x) {
if (x == 0) return 0;
long cur = x;
while (cur * cur > x) {
cur = 0.5 * (cur + x / cur);
if (cur < 1e-6) {
break;
}
}
return cur;
}
};