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

Cắt sản phẩm tối đa | DP-36 trong C ++

Trong hướng dẫn này, chúng ta sẽ thảo luận về một chương trình để tìm kiếm Cắt sản phẩm tối đa | DP-36.

Để làm được điều này, chúng tôi sẽ được cung cấp một sợi dây dài N mét. Nhiệm vụ của chúng ta là cắt sợi dây theo các độ dài số nguyên khác nhau sao cho tích của độ dài của chúng là lớn nhất

Ví dụ

#include <iostream>
using namespace std;
//finding maximum of two, three integers
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));
}
//returning maximum product
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;
}

Đầu ra

Maximum Product is 36