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

โปรแกรมค้นหาผลคูณของตัวเลขไม่กี่ตัวซึ่งให้ผลรวมใน Python


สมมติว่าเรามีตัวเลข n เราต้องหาตัวเลขตั้งแต่สองตัวขึ้นไปที่ผลรวมของพวกมันเท่ากับ n และผลิตภัณฑ์ของตัวเลขเหล่านี้ถูกขยายให้ใหญ่สุด เราต้องหาผลคูณ

ดังนั้น หากอินพุตเท่ากับ n =12 เอาต์พุตจะเป็น 81 เช่น 3 + 3 + 3 + 3 =12 และ 3 * 3 * 3 * 3 =81

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

  • กำหนดฟังก์ชัน dp() นี่จะใช้เวลา n

  • ถ้า n เท่ากับ 0 แล้ว

    • กลับ 1

  • ตอบ :=0

  • สำหรับผมอยู่ในช่วง 1 ถึง n + 1 ทำ

    • ans :=สูงสุดของ ans และ (i * dp(n - i))

  • กลับมาอีกครั้ง

  • จากวิธีหลัก ให้ทำดังนี้ −

  • กลับ dp(n)

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

ตัวอย่าง

class Solution:
   def solve(self, n):
      def dp(n):
         if n == 0:
            return 1
         ans = 0
         for i in range(1, n + 1):
            ans = max(ans, i * dp(n - i))
         return ans
      return dp(n)
ob1 = Solution()
print(ob1.solve(12))

อินพุต

12

ผลลัพธ์

81