程序以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的i

    • ans:= ans和(i * dp(n − i))的最大值

  • 返回ans

  • 从主要方法中,执行以下操作-

  • 返回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
猜你喜欢