#include <iostream>
#include <cstdio>
using namespace std;
const int maxn = 10000;
int c1[maxn], c2[maxn], c3[maxn];
int main()
{
for(int i = 0; i <= 310; i++)
{
c1[i] = 1;
c2[i] = 0;
}
for(int i = 0; i <= 310; i++)
c3[i] = i*i;
for(int i = 2; i <= 310; i++)
{
for(int j = 0; j <= 310; j++)
for(int k = 0; k+j <= 310; k+=c3[i])
c2[j+k] += c1[j];
for(int j = 0; j <= 310; j++)
{
c1[j] = c2[j];
c2[j] = 0;
}
}
int n;
while(cin >> n)
{
if(n==0) break;
printf("%d\n", c1[n]);
}
}
hdu1398
最新推荐文章于 2019-09-30 17:48:40 发布