hdu 1398Square Coins

http://acm.hdu.edu.cn/showproblem.php?pid=1398

View Code
 1 #include<stdio.h>
 2 int main()
 3 {
 4     int n,i,j,k;
 5     int sum[305];
 6     int temp[305];
 7     while(~scanf("%d",&n),n)
 8     {
 9         
10         
11         for(i=0;i<=n;i++)
12         {
13             sum[i]=1;
14             temp[i]=0;
15         }
16         for(i=2;i*i<=n;i++)
17         {
18             
19             for(j=0;j<=n;j++)
20             {
21                 for(k=0;j+k<=n;k+=i*i)
22                 {
23                     temp[j+k]+=sum[j];
24                 }
25             }
26             for(j=0;j<=n;j++)
27             {
28                 sum[j]=temp[j];
29                 temp[j]=0;
30             }
31         }
32         printf("%d\n",sum[n]);
33     }
34 }
原文地址:https://www.cnblogs.com/1114250779boke/p/2630138.html