ในบทช่วยสอนนี้ เราจะพูดถึงโปรแกรมเพื่อค้นหาค่าสูงสุดโดยเลือกว่าจะหารหรือพิจารณาตามที่เป็นอยู่
สำหรับสิ่งนี้เราจะได้รับค่าจำนวนเต็ม งานของเราคือการหาค่าสูงสุดด้วยการหารตัวเลขออกเป็นสี่ส่วนซ้ำๆ หรือเลือกตามฟังก์ชันที่กำหนด F(n) =max( (F(n/2) + F(n/3) + F(n/4) + F(n/5)), n).
ตัวอย่าง
#include <bits/stdc++.h> using namespace std; //calculating the maximum result int findMaximum(int size) { int term[size + 1]; term[0] = 0; term[1] = 1; int i=2; while(i <= size) { term[i] = max(i, (term[i / 2] + term[i / 3] + term[i / 4] + term[i / 5])); i = i+1; } return term[size]; } int main() { int number = 37; cout << "Maximum possible sum: " << findMaximum(number)<< endl; return 0; }
ผลลัพธ์
Maximum possible sum: 57