Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Chương trình Python kiểm tra số có phải lũy thừa của 2

Bài toán: cho một số, kiểm tra xem nó có phải lũy thừa của 2 hay không.

Hai cách giải quyết:

Cách 1: Lặp chia cho 2

def find(n):
    if (n == 0):
        return False
    while (n != 1):
        if (n % 2 != 0):
            return False
        n = n // 2
    return True

if find(98):
    print('Yes')
else:
    print('No')
No

Cách 2: Thao tác bit (bitwise)

Số là lũy thừa của 2 khi có đúng 1 bit 1 trong biểu diễn nhị phân. Biểu thức: x & (x - 1) == 0 (với x > 0).

def find(x):
    return (x and (not(x & (x - 1))))

if find(98):
    print('Yes')
else:
    print('No')
No

Kết luận

Đã học 2 cách kiểm tra lũy thừa của 2: lặp chia 2 và thao tác bitwise.