Trong bài viết này, chúng ta sẽ học về giải pháp và phương pháp giải quyết bài toán cho trước.
Đề bài
Cho một số n, chúng ta cần kiểm tra xem số cho trước có phải là lũy thừa của 2 hay không.
Phương pháp
- Tiếp tục chia số đầu vào cho 2, tức là n = n/2 lặp lại.
- Chúng ta sẽ kiểm tra trong mỗi lần lặp, nếu n%2 khác 0 và n không phải 1 thì n không phải là lũy thừa của 2.
- Nếu n trở thành 1 thì nó là lũy thừa của 2.
Hãy xem triển khai dưới đây:
Ví dụ
def isPowerOfTwo(n):
if (n == 0):
return False
while (n != 1):
if (n % 2 != 0):
return False
n = n // 2
return True
# main
if(isPowerOfTwo(40)):
print('Yes')
else:
print('No')
Kết quả
No
Tất cả biến và hàm được khai báo trong phạm vi toàn cục như hình dưới đây:

Kết luận
Trong bài viết này, chúng ta đã học về cách tìm xem một số có phải là lũy thừa của 2 hay không.