1,有不限数目的1、5、10、20、50面额的纸币,有多少种方法凑出100元
解答:实质就是暴力枚举
#include<iostream>
#include<cstring>
using namespace std;
const int Len = 5;
int ans = 0;
int m[Len] = {50, 20, 10, 5, 1};
int total[Len] = {2, 5, 10, 20, 100};
int n[Len];
int sum = 100;
void GetNum(int m[], int n[])
{
while (true)
{
int rel = 0;
for (int i = 0; i < 5; i++)
rel += m[i] * n[i];
if (rel == sum)
{
ans++;
for (int i = 0; i < Len; i++)
cout << n[i] << " ";
cout << endl;
}
int k = Len - 1;
while (k >= 0)
{
if (n[k] < total[k])
{
n[k]++;
break;
}
else
{
n[k] = 0;
k--;
}
}
if (k < 0)
break;
}
}
void RecursiveGetNum(int m[], int n[], int index)
{
if (index == Len)
{
int rel = 0;
for (int i = 0; i < Len; i++)
rel += m[i] * n[i];
if (rel == sum)
{
ans++;
for (int i = 0; i < Len; i++)
cout << n[i] << " ";
cout << endl;
}
return;
}
for (n[index] = 0; n[index] <= total[index]; n[index]++)
{
RecursiveGetNum(m, n, index + 1);
}
}
int main()
{
GetNum(m, n);
//RecursiveGetNum(m, n, 0);
cout << ans << endl;
return 0;
}
分享到:
相关推荐
java 实现有数量不限的面值为100,50,20,10,5,1元的纸币,问要组成N(N<=10^6)共有多少种组合方式;其中包括了爆搜的方法和动态规划的方法
例如有 1 分3 张,2 分3 张,5 分 1 张,则能组成 7 分面值的方法有:3 个 1 分+2 个 2 分,1 个 1 分+3 个 2 分,2个 1 分+1 个5 分,1 个2分+1 个5 分共四种。 编程任务:对于给定的 n 种不同钱币,编程计算...
编写程序,输出用一元人民币兑换成1分、2分和5分硬币共有多少种兑换方法。
钱币组合方法问题 钱币组合方法问题 钱币组合方法问题 ...如给定面值7分,有1分3张,2分3张,5分1张,能组成给定面值7分的方法有如下4种: 3个1分+2个2分; 1个1分+3个2分; 2个1分+1个5分; 1个2分+1个5分。
编一个程序,把一张面值100元的钞票换成5元,1元和5角面值的钞票,要求100元换以上的零钱100张,且要求每种不少于一张。请问,有哪几种换法?
问小明至少带了多少钱的硬币(元为单位),每种面值的硬币有多少个? 要求输出格式为:1角的数量,5角的数量,1元的数量,总金额。(例如:20,30,40,50) 说明在结果中只输出各个对应的数字即可 运行结果: 50,60,45,...
针对数目不定的人民币100元、50元、20元和10元纸币,设计视觉检测硬件系统和软件算法,用于在检测出图像中统计各种面值纸币的张数,标记每种纸币在图像中的位置坐标,并自动计算得到视野中纸币的总币值。设计图像...
NULL 博文链接:https://hxz-qlh.iteye.com/blog/1141327
给出一定数额的钱,得到凑钱方案.即给出一定的钱数,用面值为100,50,20,10,5,2,1的小面值凑出所给的钱数.
例如:给定了6种钱币面值为2、5、10、20、50、100,用来凑 15元,可以用5个2元、1个5元,或者3个5元,或者1个5元、1个10元,等等。显然,最少需要2个钱币才能凑成15元。 你的任务就是,给定若干个互不相同的钱币面值...
3 张,5 分 1 张,则能组成 7 分面值的方法有:3 个 1 分+2 个 2 分,1 个 1 分+3 个 2 分,2 个 1 分+1 个5 分,1 个2分+1 个5 分共四种。 编程任务:对于给定的 n 种不同钱币,编程计算某个给定面值能有多少...
NULL 博文链接:https://hxz-qlh.iteye.com/blog/1141322
【资源说明】 1、该资源包括项目的全部源码,下载可以直接使用! 2、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末...基于matlab的人民币面额识别系统源码+项目说明(识别1 2 5 10 20 50 100金额).zip
有如下金额的钱币 100,50,20,10,5,2,1,0.5,0.2,0.1,0.05,0.02,0.01,单位元。 输入一个金额,计算出需要的各种面值的钱币的类型及数量, 1、将需要的面值及使用数量显示到屏幕上 2、按各面值的钱币的大小排序,...
行业分类-设备装置-一种基于纹理分析的美元纸币面额及版本识别方法.zip
1. 能接受的纸币面值最大为100元,最小为10元,以4个按键代表4种面额的纸币(100元、50元、20元和10元),每按一键,表示投入一张纸币。 2. 购卡者可选择的卡面值有100元和50元两种,每次只能售出1张卡。用二个按键...
设有6种不同面值的硬币,各硬币的面值分别为5分,1角,2角,5角,1元,2元。现要用这些面值的硬币来购物和找钱。购物时规定了可以使用的各种面值的硬币个数。 假定商店里各面值的硬币有足够多,顾客也可用多种方式...
行业分类-设备装置-一种基于图像的直方图匹配的人民币纸币面额识别方法.zip
为了提高分割结果的准确性,提出了一种预测先验知识的字符分割方法。对于某种面值的纸币,根据其特有的号码排列方式定义马尔可夫链的状态,通过求得马尔可夫链的前向识别,可以预测纸币序列号的先验知识,再配合连通...
行业分类-设备装置-一种纸币存取钱箱及使用该钱箱的多面值纸币存取机