问题描述
设n是一个正整数,要求将n分解为若干互不相同的自然数之和,且这些自然数的乘积最大。
输入:正整数n
输出:计算的最大乘积。
样本用例:
如输入10,则输出30.
提示:若a+b=const ,则a-b的绝对值越小,ab值越大。
贪心策略:将n分成从2开始的连续自然数之和,如果最后剩下一个数,则将此数在后项优先的方式下均匀地分给前面各项
源代码:
#include<iostream>
#include<vector>
using namespace std;
int main() {
int n,re=0,sum,count=2;
vector<int>