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

โปรแกรมตรวจสอบตัวเลขว่าเป็นผลรวมของกำลังสามใน Python . หรือไม่


สมมติว่าเรามีตัวเลข n เราต้องตรวจสอบว่าเป็นไปได้หรือไม่ที่จะแทน n เป็นผลรวมของยกกำลังสามตัวหรือไม่ จำนวนเต็ม y ถูกกล่าวว่าเป็นกำลังสามหากมีจำนวนเต็ม x โดยที่ y =3^x

ดังนั้น หากอินพุตเท่ากับ n =117 ผลลัพธ์จะเป็น True เพราะ 117 =3^4 + 3^3 + 3^2 + =81 + 27 + 9

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

  • สำหรับฉันในช่วง 16 ถึง 0 ลดลง 1 ทำ

    • ถ้า n>=3^i แล้ว

      • n :=n - 3^i

  • ถ้า n> 0 แล้ว

    • คืนค่าเท็จ

  • คืนค่า True

ตัวอย่าง

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

def solve(n):
   for i in range(16, -1, -1):
      if n >= pow(3,i):
         n -= pow(3,i)

   if n > 0:
      return False

   return True

n = 117
print(solve(n))

อินพุต

117

ผลลัพธ์

True