0基础学习Python算法(二)

【例3】检测2的幂次
3.代码实现
class Solution:
    def checkPowerOf2(self, n):
        ans = 1
        for i in range(31):
            if ans == n:
                return True
            ans = ans << 1
        return False
if __name__ == '__main__':
    temp = Solution()
    nums1 = 16
    nums2 = 17
    print(("输入:"+str(nums1)))
    print(("输出:"+str(temp.checkPowerOf2(nums1))))
    print(("输入:"+str(nums2)))
    print(("输出:"+str(temp.checkPowerOf2(nums2))))
【例4】求平方根
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))))

猜你喜欢

转载自blog.csdn.net/babyai996/article/details/134589933