Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

กำลังของสามใน Python

สมมติว่าเรามีตัวเลข n เราต้องตรวจสอบว่าตัวเลขนั้นเป็นกำลังของ 3 หรือไม่ เช่นถ้าตัวเลขเป็น n = 27 นั่นคือกำลังของ 3 ผลลัพธ์จะเป็น true ถ้า n = 15 จะเป็น false

วิธีการแก้ปัญหา

  • เราจะใช้ลอการิทึมในการแก้ปัญหา
  • ถ้า [log10(n) / log10(3)] mod 1 == 0 จะเป็นกำลังของสาม มิฉะนั้นไม่ใช่

ตัวอย่างโค้ด

import math

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