最大程度地削减产品数量| C ++中的DP-36

在本教程中,我们将讨论一个程序以找到最大的产品切割量| DP-36。

为此,我们将获得N米的绳索。我们的任务是将绳索切成不同的整数长度,以使它们的长度乘积最大。

示例

#include <iostream>
using namespace std;
//查找最多两个,三个整数
int max(int a, int b) {
   return (a > b)? a : b;
}
int max(int a, int b, int c) {
   return max(a, max(b, c));
}
//返回最大产品
int maxProd(int n) {
   if (n == 0 || n == 1) return 0;
      int max_val = 0;
   for (int i = 1; i < n; i++)
      max_val = max(max_val, i*(n-i), maxProd(n-i)*i);
   return max_val;
}
int main() {
   cout << "Maximum Product is " << maxProd(10);
   return 0;
}

输出结果

Maximum Product is 36