这道题比较简单,可以说是母函数的模板题,直接套用模板就可以解了。
#include <cstdio>
#include <iostream>
using namespace std;
int n;
int main()
{
while (scanf("%d",&n)!=EOF)
{
int c1[150],c2[150];
for (int i=0;i<=n;i++)
{
c1[i]=1; c2[i]=0;
}
for (int i=2;i<=n;i++)
{
for (int j=0;j<=n;j++)
{
for (int k=0;j+k<=n;k+=i)
{
c2[j+k]+=c1[j];
}
}
for (int j=0;j<=n;j++)
{
c1[j]=c2[j];
c2[j]=0;
}
}
printf("%d\n",c1[n]);
}
return 0;
}