#include <iostream>
#include <vector>

using namespace std;

vector<int> maxProduct(int n) {
  vector<int> result;
  int i = 2;
  while (n > 1) {
    if (n <= i * (i + 1) / 2) {
      result.push_back(i);
      n -= i;
    } else {
      i++;
    }
  }
  return result;
}

int main() {
  int n;
  cin >> n;
  vector<int> result = maxProduct(n);
  for (int i = 0; i < result.size(); i++) {
    cout << result[i] << ' ';
  }
  return 0;
}
C++求解最大乘积拆分问题

原文地址: https://www.cveoy.top/t/topic/f3pW 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录