ในบทความนี้ เราจะเรียนรู้วิธีแก้ปัญหาตามข้อกำหนดด้านล่าง
ข้อกำหนดปัญหา − เราได้รับตัวเลข ต้องตรวจสอบว่าตัวเลขนั้นเป็นกำลังของ 2 หรือไม่
เราสามารถแก้ได้ด้วย 2 วิธีตามที่อภิปรายด้านล่าง
วิธีที่ 1: หาลอการิทึมของตัวเลขที่กำหนดฐาน 2 เพื่อได้กำลัง
ตัวอย่าง
# power of 2
def find(n):
if (n == 0):
return False
while (n != 1):
if (n % 2 != 0):
return False
n = n // 2
return True
# Driver code
if find(98):
print('Yes')
else:
print('No')
ผลลัพธ์
No
วิธีที่ 2: ใช้ประโยคตรรกะ (Bitwise operation)
ตัวอย่าง
# power of 2
def find(x):
# ถ้า x เป็น 0 หรือไม่
return (x and (not(x & (x - 1))))
# Driver code
if find(98):
print('Yes')
else:
print('No')
ผลลัพธ์
No
สรุป
ในบทความนี้ เราได้เรียนรู้วิธีตรวจสอบว่าตัวเลขที่กำหนดเป็นกำลังของ 2 วิธีที่ 2 ใช้ bitwise operation เร็วกว่าและมีประสิทธิภาพมากกว่า