Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Giá trị tối đa với lựa chọn chia hoặc giữ nguyên trong C++ (phiên bản 2)

Trong hướng dẫn này, thảo luận chương trình tìm giá trị tối đa với lựa chọn chia số thành bốn phần đệ quy hoặc giữ nguyên theo hàm F(n) = max((F(n/2) + F(n/3) + F(n/4) + F(n/5)), n).

Ví dụ

#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 << "Tổng lớn nhất có thể: " << findMaximum(number) << endl;
    return 0;
}

Đầu ra

Tổng lớn nhất có thể: 57