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

โปรแกรมตรวจสอบตัวเลขสามารถเขียนเป็นผลรวมของตัวเลขแฟกทอเรียลที่แตกต่างกันหรือไม่ในPython


สมมติว่าเรามีจำนวนบวก n เราต้องตรวจสอบว่า n สามารถเขียนเป็นผลรวมของจำนวนแฟกทอเรียลบวกเฉพาะหรือไม่

ดังนั้น หากอินพุตเท่ากับ n =144 ผลลัพธ์จะเป็น True เป็น 4! +5! =24 + 120 =144

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

  • ข้อเท็จจริง :=1

  • res :=รายการใหม่

  • x :=2

  • ในขณะที่ความจริง <=n ทำ

    • ใส่ fact ท้าย res

    • ข้อเท็จจริง :=ข้อเท็จจริง * x

    • x :=x + 1

  • สำหรับฉันในช่วงขนาดความละเอียด -1 ถึง 0, ลดลง 1 ทำ

    • ถ้า n>=res[i] แล้ว

      • n :=n - res[i]

  • คืนค่า จริง เมื่อ n เท่ากับ 0

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

ตัวอย่าง

class Solution:
def solve(self, n):
   fact = 1
   res = []
   x = 2
   while fact <= n:
      res.append(fact)
      fact = fact * x
      x += 1
   for i in range(len(res)-1,-1,-1):
      if n>=res[i]:
         n-=res[i]
   return n==0
ob = Solution()
print(ob.solve(144))

อินพุต

144

ผลลัพธ์

True