給你一個金額( n cents),請你回答共有多少種硬幣組合的方式。例如:n=11,那麼你可以有以下4種硬幣的組合:
p.s 美國的零錢共有以下5種硬幣以及其面值:
請注意:n=0 我們算他是有一種方式。
思路:又是这个类型的动态规划,[动态规划]UVA357 - Let Me Count The Ways [动态规划]UVA147 - Dollars 这些都是同一个类型的题目。
#include<iostream> #include<cstring> using namespace std; const int maxn=8000; int coin[5]={1,5,10,25,50}; long long dp[maxn]={1}; int main() { int num; int i,j; for(i=0;i<5;i++) { for(j=0;j<maxn-100;j++) { dp[j+coin[i]]=dp[j+coin[i]]+dp[j]; } } while(cin>>num) { cout<<dp[num]<<endl; } return 0; }
NYOJ--郁闷的C小加(一),布布扣,bubuko.com
原文:http://blog.csdn.net/computer_liuyun/article/details/23911337