#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
int main()
{
int n;
int c1[1100],c2[1100];
int i,j,k;
int t;
while( scanf("%d",&n)!=EOF )
{
if(n==0)
break;
for(i=0;i<=n;i++)
{
c1[i]=1;
c2[i]=0;
}
t=2;
for(i=t*t;i<=n;i=t*t)//只要在这步上注意点就行
{
for(j=0;j<=n;j++)
{
for(k=0;k+j<=n;k+=i)
{
c2[j+k]+=c1[j];
}
}
for(j=0;j<=n;j++)
{
c1[j]=c2[j];
c2[j]=0;
}
t++;
}
printf("%d\n",c1[n]);
}
return 0;
}
hdu 1398 Square Coins
最新推荐文章于 2018-08-19 20:31:05 发布