这题是给定一个数,求把这个数分解成任意多个不相等的数,使这些数的积最大,感谢队友4页纸的推导~
#include <stdio.h>
int n;
int num[1010];
int main()
{
while ( EOF != scanf("%d", &n) )
{
int i, k = 2;
for ( i = 0 ; k <= n ; i++ )
{
num[i]= k;
n-=k;
k++;
}
for ( k = i-1 ; n ; k-- )
{
num[k]++;
n--;
if ( !k )
k = i;
}
printf("%d", num[0]);
for ( k = 1 ; k < i ; k++ )
printf(" %d", num[k]);
putchar(10);
}
return 0;
}