Computer >> Máy Tính >  >> Lập trình >> Python

Chương trình tìm tích của một vài số có tổng được cho bằng Python

Giả sử chúng ta có một số n, chúng ta phải tìm hai hoặc nhiều số sao cho tổng của chúng bằng n và tích của các số này là cực đại, chúng ta phải tìm tích.

Vì vậy, nếu đầu vào là n =12, thì đầu ra sẽ là 81, là 3 + 3 + 3 + 3 =12 và 3 * 3 * 3 * 3 =81.

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • Định nghĩa một hàm dp (). Điều này sẽ mất n

  • nếu n giống 0 thì

    • trả lại 1

  • ans:=0

  • đối với tôi trong phạm vi từ 1 đến n + 1, hãy thực hiện

    • ans:=tối đa ans và (i * dp (n - i))

  • trả lại ans

  • Từ phương thức chính, thực hiện như sau -

  • trả về dp (n)

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

Ví dụ

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))

Đầu vào

12

Đầu ra

81