ในบทช่วยสอนนี้ เราจะพูดถึงโปรแกรมเพื่อค้นหาการตัดผลิตภัณฑ์สูงสุด | DP-36.
สำหรับสิ่งนี้เราจะได้รับเชือก N เมตร งานของเราคือการตัดเชือกด้วยความยาวจำนวนเต็มต่างกันเพื่อให้ผลคูณของความยาวสูงสุด
ตัวอย่าง
#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;
} ผลลัพธ์
Maximum Product is 36