牛客网每日一练

#
# 
# @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的平方根(向下取整)
 
此题是一个简单的数学问题
解决方法我在本题用的是公式而不是二分法,公式为牛顿迭代法:
    

截图来自牛客网解析

我们迭代挺知道判别是Xn与Xn+1的差值的绝对值为1e-6

原文地址:https://www.cnblogs.com/nenu/p/14666493.html