母函数水题
#include<stdio.h>
int c1[301],c2[301];
int main()
{
int t,n,m,i,j,s,k;
while(scanf("%d",&n),n)
{
for(j=0;j<=n;j++)
{c1[j]=1;c2[j]=0;}
for(i=2;i<=n;i++)
{
for(j=0;j<=n;j++)
for(k=0;k+j<=n;k=k+i*i)
c2[j+k]+=c1[j];
for(j=0;j<=n;j++)
{
c1[j]=c2[j];c2[j]=0;
}
}
printf("%d\n",c1[n]);
}
return 0;
}