sum[m][n]就是在统计一共有多少种情况,fun中参数m就是一共有多少钱,n就是1,2,3这三种硬币,在fun函数中前面的循环都是用来进行特殊情况的判断,最后一句return才是精髓,前面的fun函数只有m-n在变也就是最大钱数为3每一次递归减少一次,后面的是n-1在变也就是在统计1,2硬币这两种情况。
=EOF){i++;for(a=0;a<=n/5;a++)for(b=0;b<=(n-5*a)/2;b++)//减去已经分配给5分的钱数for(c=0;c<=n-5*a-2*b;c++)//减去已经分给5分和2分的钱数{if(c+2*b+5*a==n)k++;}printf("Case %d:%d,%.0lf\n",i,n,k);k=0;}return 0;} ...