问题描述:假设某国的硬币的面值有 1、5、10、50 元四种,输入一个金额 N (正整数,N<=1000),印出符合该金额的硬币组合有多少种。
问题分析: 1、5、10 元组合出 N 元的方法数 = 以 1、5 元组合出 N 元的方法数 + 以 1、5、10 元组合出 N - 10 元的方法数(其他类推)
#include<iostream>
#include<algorithm>
using namespace std;
#define maxn 10000
int S[4]={1,5,10,50};
int ways[maxn+1];
int main(){

     memset(ways,0,sizeof(ways));
      ways[0]=1;

      for (int i=0; i<4; i++)
      for (int j=S[i]; j<=maxn; j++){
     ways[j]+=ways[j-S[i]];
      }
      
      for(int n;cin>>n&&n;)
    cout<<ways[n]<<'\n';

      return 0;
}
View Code

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-10-25
  • 2021-10-10
  • 2021-06-30
  • 2021-09-03
猜你喜欢
  • 2022-02-07
  • 2022-01-25
  • 2021-10-12
  • 2021-05-26
  • 2021-10-22
  • 2022-12-23
相关资源
相似解决方案