硬币组合个数

给你六种面额1、5、10、20、50、100元的纸币,假设每种币值的数量都足够多,编写程序求组成N员(N为0-10000的非负整数)的不同组合的个数。

输入描述:

输入为一个数字N,即需要拼凑的面额

输出描述:

输出也是一个数字,为组成N的组合个数。

示例1

输入

5

输出

2
 1 #include<iostream>
 2 #include<vector>
 3 using namespace std;
 4
 5 int main()
 6 {
 7     int N;
 8     char a[6]={1,5,10,20,50,100};
 9     cin>>N;
10     vector<long> d(N+1,0);
11     d[0]=1;
12     for(int i=0;i<6;i++)
13         for(int j=1;j<=N;j++)
14             if(j>=a[i])
15                 d[j]=d[j]+d[j-a[i]];
16
17     cout<<d[N]<<endl;
18
19     return 0;
20 }
时间: 2024-12-28 09:25:57

硬币组合个数的相关文章

字符串的组合个数

有一个MAP,KEY从a到z,对应的VALUE从1到26,比如: a = 1 b = 2 ... z = 26,对于一个数字字符串"11",可以由"aa"对应的数字组合,也可以由"k"对应的数字代表,对应组合的个数记为2:同样,比如"111"对应的组合个数是3,分别是"aaa", "ka", "ak". 给定一个数字数组,计算对应的组合个数. 解答:对于一个字符串,定

硬币组合

在刷腾讯笔试题时有一个选择题:有任意多个1.2.5分的硬币,有多少种组合方法组成1元. 一开始的思路认为可以使用类似斐波那契数的方法,但是马上意识到不合适,首先这是一个组合问题不是一个排列问题. 于是考虑如果5分的取1,2.....20个,其余的使用1.2分组合,而使用1,2分组成特定的钱数又可以取1,2...k个2分其余的用1分组合,依次内推,可见该问题可以使用递归法解决. 代码如下(运行结果为541): public class Solution { public int numOfCoin

N个不同球取出M个的组合个数求解

Technorati 标签: 组合,概率 从N个不同的球中取出M个,一共有多少种取法? 这个问题是组合数据的基本问题,考虑拿出球是否放回,拿出去的球是否有序,它有4种变体: 不放回,有序: 不放回,无序: 放回,无序: 放回,有序: 对于第一种,取出M个球,第一个有N种可能,第二个N-1种可能,依次类推,M个球共有: N*(N-1)*(N-2)*..*(N-M+1), 举个例子:3个同学(A,B,C),从中取出2位同学,那么可能的组合是: A BC B AC C AB 共计6种,刚好是3*(3-

练习: C#---函数(100以内7有关的数、99乘法表、100以内奇数和、硬币组合)

/// <summary> /// 100以内与7有关的数 /// </summary> public void Seven() { Console.WriteLine("100以内与7有关的数有:"); int count = 0; for (int num = 1; num <= 100;num++ ) { if((num%10==7) || (num/10==7) || (num/100==7) ||(num%7==0)) { count++; Co

硬币组合问题

这是一篇讲的很好很好的博文:http://www.cnblogs.com/python27/archive/2013/09/05/3303721.html #include <bits/stdc++.h> using namespace std; int dp[10000][10000]; int coin[]={0,1,5,10,25,50}; void fd(int x) { for(int i=0;i<=5;i++) dp[i][0]=1; for(int i=1;i<=5;

leetcode笔记:Coin Change

一. 题目描述 You are given coins of different denominations and a total amount of money amount. Write a function to compute the fewest number of coins that you need to make up that amount. If that amount of money cannot be made up by any combination of th

[BZOJ 1042][HAOI 2008]硬币购物(背包+容斥原理)

题目链接:http://www.lydsy.com:808/JudgeOnline/problem.php?id=1042 刚开始搞容斥原理,还很有点吃力,我太弱了... 首先用被类似于背包的DP进行预处理,假设每种硬币个数无限制,求出f[i]=凑出面值i的方案总数. 但是实际上题目中每种硬币个数是有限制的,设四种硬币分别是a.b.c.d,则凑出面值S的方案中超出限制的方案数=a超出限制的方案数+b超出限制的方案数+c超出限制的方案数+d超出限制的方案数-a和b都超出限制的方案数-a和c都超出限

蓝桥杯 历届试题 PREV-34 矩阵翻硬币

历届试题 矩阵翻硬币 时间限制:1.0s   内存限制:256.0MB 问题描述 小明先把硬币摆成了一个 n 行 m 列的矩阵. 随后,小明对每一个硬币分别进行一次 Q 操作. 对第x行第y列的硬币进行 Q 操作的定义:将所有第 i*x 行,第 j*y 列的硬币进行翻转. 其中i和j为任意使操作可行的正整数,行号和列号都是从1开始. 当小明对所有硬币都进行了一次 Q 操作后,他发现了一个奇迹--所有硬币均为正面朝上. 小明想知道最开始有多少枚硬币是反面朝上的.于是,他向他的好朋友小M寻求帮助.

InterviewQuestion_C#_Probl_计算1分2分5分硬币各有多少枚

题目:现在有1分.2分.5分硬币共100个,总金额为2.46元,请用程序计算出1分.2分.5分各有多少枚,有多少种算法? 这是最近面试遇到的一个题目,刚开始没有思路,一看这是一个三元一次方程组,假设个数分别为a.b.c的话,就会有三个未知数和两个方程组,怎么解?数学真是白学了! 于是在网上搜到了这个题目,不过题目略有不同: 文件:Program1.cs //问题:1分2分5分硬币,一共2.46元,求各种硬币的个数 //回答:你没说明是不是求需要的最少的硬币的个数,因为这样有上千种组成,所以我就给