问题描述:设n是一个正整数,现要求将n分解为若干个互不相同的自然数的和,使这些自然数的乘积最大.
代码如下:
int BestMul(int n)
{
int i,j,mul=1;
int num;
//初始化一个数组,用来存放分解后的每个数
int a[MAX] = {0};
a[0]=2;
num=n-2;
//利用for循环来从2开始递增,每次后一个数比前一个数大1
//当最后剩下的数小于前一个数时跳出循环
for(i=0;num>a[i];i++){
a[i+1]=a[i]