โจทย์: กำหนดเลข n ตรวจสอบว่าเป็นกำลังของ 2 หรือไม่
แนวทาง
- หาร n ด้วย 2 ซ้ำๆ (
n = n/2) - ถ้าในระหว่างทาง
n % 2 != 0และ n ไม่ใช่ 1 แสดงว่าไม่ใช่กำลังของ 2 - ถ้า n กลายเป็น 1 แสดงว่าเป็นกำลังของ 2
โค้ดตัวอย่าง
def isPowerOfTwo(n):
if n == 0:
return False
while n != 1:
if n % 2 != 0:
return False
n = n // 2
return True
if isPowerOfTwo(40):
print('Yes')
else:
print('No')
ผลลัพธ์
No

สรุป
เรียนรู้วิธีตรวจสอบว่าเลขเป็นกำลังของ 2 ด้วยการหารซ้ำ