博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

杭电--1389 Square Coins

Posted on 2012-08-10 21:10  皇星客栈--Linux  阅读(166)  评论(0编辑  收藏  举报

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

第二个母函数直接编译无错误,但是提交时少写一个以输入0退出,哎!!!!!!

View Code
 1 #include<stdio.h>
 2 
 3 #define max 100001
 4 
 5 int main( )
 6 {
 7     int i;
 8     int j;
 9     int k;
10     int c1[max];
11     int c2[max];
12     int n;
13     while( scanf("%d",&n) == 1 )
14     {
15         
16         if( n == 0 )
17             break;
18 
19         for( i = 0; i <= n; i++ )
20         {
21             c1[i] = 1;
22             c2[i] = 0;
23         }
24 
25         for( i = 2; i*i <= n; i++ )
26         {
27 
28             for( j = 0; j <= n; j++ )
29             {
30                 for( k = 0; j+k <= n; k += i*i )
31                 {
32                     c2[j+k] += c1[j];
33                 }
34             }
35 
36             for( j = 0; j <= n; j++ )
37             {
38                 c1[j] = c2[j];
39                 c2[j] = 0;
40             }
41         }
42         
43         printf("%d\n", c1[n]);
44     }
45     return 0;
46 }
47