Coin Change

uva674:

题意:有1,5,10,25,50这五种硬币。给一个价值,求有多少种组合可以得到该价值。
题解:完全背包

 1 #include<cstring>
 2 #include<cstdio>
 3 #include<algorithm>
 4 #include<iostream>
 5 using namespace std;
 6 int we[6];
 7 int dp[7499];
 8 int main(){
 9     we[1]=1;we[2]=5;we[3]=10;we[4]=25;we[5]=50;
10     int n;
11    
12         memset(dp,0,sizeof(dp));
13         dp[0]=1;
14         for(int i=1;i<=5;i++){
15             for(int j=0;j<=7499;j++){
16                    if(j>=we[i])
17                      dp[j]+=dp[j-we[i]];
18                 }
19             }
20          while(~scanf("%d",&n)&&n){
21          printf("%d
",dp[n]);
22     }
23    
24 }
View Code
原文地址:https://www.cnblogs.com/chujian123/p/3402130.html