例4 求平方根

扶醉桌前 提交于 2019-12-03 21:31:59
#sqrt(3)=1; sqrt(4)=2; sqrt(5)=2; sqrt(10)=3

class Solution:
    def sqrt(self, x):
        l, r  = 0, x
        while l + 1 < r:
            m = (r + l) // 2
            if m * m == x:
                return m
            elif m * m > x:
                r = m
            else:
                l = m
        if l * l == x:
            return l
        if r * r == x:
            return r
        return l

if __name__ == '__main__':
    temp = Solution()
    x1 = 5
    x2 = 10
    print(("输入:" + str(x1)))
    print(("输出:" + str(temp.sqrt(x1))))
    print(("输入:" + str(x2)))
    print(("输出:" + str(temp.sqrt(x2))))

结果如下:
输入:5
输出:2
输入:10
输出:3

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!