[华为OD]用连续自然数之和来表达整数

#include 
#include 
#include 
using namespace std;

int main()
{
    int T;
    cin >> T;
    map res;
    res[1] = to_string(T) + "=" + to_string(T);
    for (int i = 1; i <= T; ++i){
        string str = to_string(T) +"=";
        for (int j = i, sum = 0; sum <= T; ++j){
            sum += j;
            str += to_string(j);
            if (sum == T) {
                res[j - i] = str;
                break;
            }
            str += "+";
        }
    }
    for (auto it = res.begin(); it != res.end(); ++it) {
        cout << it -> second << endl;
    }
    cout << "Result:" << res.size() << endl;

    return 0;
}

你可能感兴趣的:([华为OD]用连续自然数之和来表达整数)