简单的钱币兑换问题,就是钱的种类多了一点,完全背包。
#include<cstdio> #include<cstring> int main () { int i,j,dp[125]; memset(dp,0,sizeof(dp)); dp[0]=1; for(i=1; i<=120; i++) for(j=i; j<=120; j++) dp[j]+=dp[j-i]; while(~scanf("%d",&i)) printf("%d ",dp[i]); return 0; }