标签:
1 #include<stdio.h> 2 int save[320],temp[320]; 3 int a[30]; 4 int main() 5 { 6 int n; 7 for(int i=0; i<=20; i++) 8 a[i]=i*i; 9 while(~scanf("%d",&n)&&n) 10 { 11 for(int i=0; i<=n; i++) 12 { 13 save[i]=1; 14 temp[i]=0; 15 } 16 for(int i=2; a[i]<=n; i++) 17 { 18 for(int j=0; j<=n; j++) 19 for(int k=0; k+j<=n; k+=a[i]) 20 temp[k+j]+=save[j]; 21 for(int k=0; k<=n; k++) 22 { 23 save[k]=temp[k]; 24 temp[k]=0; 25 } 26 } 27 printf("%d\n",save[n]); 28 } 29 }
只需要进行很少的修改就可以,但开始时由于我打了个a[i]的表,而且理解有问题出现了死循环的情况,以后的博客详细说(今天已经太晚了,对我来说)
标签:
原文地址:http://www.cnblogs.com/VectorLin/p/5205770.html