2285: Decompose
Result | TIME Limit | MEMORY Limit | Run Times | AC Times | JUDGE |
---|---|---|---|---|---|
3s | 8192K | 267 | 149 | Standard |
Give you an positive integer N(1<=N<=30), you can decompose n to several positive integers: A1, A2, ... Ak. (1<=k<=N) And A1 + A2 + ... + Ak = N. Now i want to know what's the maximal product of these k integers.
Input
The input contains several test cases. For each test case it contains a positive integer N. The end of input is indicated by end-of-file.Ouput
For each test case, output K, here K is the maximal product of decomposed numbers.Sample Input
3 5 6
Sample Output
3 6 9
Problem Source: sharang
#include<stdio.h>
int main()
{
int a[35]={0,1,2,3,4};
int i,j,n;
for(i=5;i<=30;i++)
{
for(j=1;j<=i/2;j++)
{
int t=a[j]*a[i-j];
if(t>a[i]) a[i]=t;//动态规划
}
}
while(scanf("%d",&n)==1)
{
printf("%d/n",a[n]);
}
return 0;
}