สมมติว่าเรามีตัวเลข n เราต้องเช็คว่าเลขยกกำลัง 3 หรือเปล่า ดังนั้นหากตัวเลขเช่น n =27 นั่นคือกำลังของ 3 ผลลัพธ์จะเป็นจริง ถ้า n =15 มันจะเป็นเท็จ
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
- เราจะใช้ลอการิทึมแก้ปัญหานี้
- ถ้า [log10(n) / log10(3)] mod 1 ==0 มันจะเป็นพลังสาม มิฉะนั้นจะไม่
ตัวอย่าง
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
class Solution(object): def isPowerOfThree(self, n): """ :type n: int :rtype: bool """ if not n or n<0: return False return (math.log10(n)/ math.log10(3)) % 1 == 0 ob1 = Solution() print(ob1.isPowerOfThree(27)) print(ob1.isPowerOfThree(15)) print(ob1.isPowerOfThree(9)
อินพุต
27 15 9
ผลลัพธ์
true false true