Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

ค่าสูงสุดด้วยตัวเลือกหารหรือนำค่าเดิมใน C++ (บทเรียน)

ในบทเรียนนี้ เราจะพูดถึงโปรแกรมเพื่อหาค่าสูงสุดด้วยตัวเลือกที่จะหารหรือนำค่าเดิม

เราจะได้รับค่าจำนวนเต็มหนึ่งค่า ภารกิจของเราคือหาค่าสูงสุดด้วยการหารจำนวนนั้นเป็นสี่ส่วนแบบเรียกซ้ำ (recursively) หรือเลือกมันเป็นค่าเดิม โดยใช้ฟังก์ชันที่กำหนด F(n) = max( (F(n/2) + F(n/3) + F(n/4) + F(n/5)), n)

ตัวอย่าง

#include <bits/stdc++.h>
using namespace std;

// คำนวณผลลัพธ์สูงสุด
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