牛客网-每日一练
# # # @param x int整型 # @return int整型 # class Solution: def sqrt(self , x ): if x <= 0: return 0 r = 1 while True: b = r r = (r + x/r) / 2 if (abs(r-b)<1e-6): break return r # write code here
实现函数 int sqrt(int x).
计算并返回x的平方根(向下取整)
此题是一个简单的数学问题
解决方法我在本题用的是公式而不是二分法,公式为牛顿迭代法:
![](https://img2020.cnblogs.com/blog/2259835/202104/2259835-20210416131207689-1348147979.jpg)
截图来自牛客网解析
我们迭代挺知道判别是Xn与Xn+1的差值的绝对值为1e-6