2934 12553
718831 13137761
#include<stdio.h>
#define Max 32768
int a[35000],c[35000];
int main()
{
int n,i,j,k;
for(i=0;i<=Max;i++)
{
c[i]=1;
a[i]=0;
}
for(i=2;i<=3;i++)
{
for(j=0;j<=Max;j++)
{
for(k=0;k+j<Max;k+=i)
a[k+j]+=c[j];
}
for(j=0;j<Max;j++)
{
c[j]=a[j];
a[j]=0;
}
}
while(scanf("%d",&n)!=EOF)
{
printf("%d\n",c[n]);
}
return 0;
}原文:http://blog.csdn.net/hdd871532887/article/details/41977189