贪心算法解决找零钱问题
4.1 找零问题
问题描述:
设有50、20、10、5、1、0.5、0.1等面额的零钱,顾 客购物花了n元,在支付(n / 100 + 1) * 100元后,收银员应如何找 零,才能使找回的钱数最少。
输入: n,表示顾客所花的钱数,最多包含一位小数。
输出: 找回的零钱数。
样例输入: 67.5 243
样例输出: 5 4
//ACM贪心算法应用——找零问题
#include <iostream>
using namespace std;
double MONEY_UNIT[7] = {50, 20, 10, 5, 1, 0.5, 0.1}; //钱的所有面额int main()
{double consumeMoney = 0; //消费的金额cin >> consumeMoney;double realGiveMoney = 0; //实际给的钱realGiveMoney = (int)(consumeMoney / 100 + 1) * 100;//通过int的自动舍去小数位来计算实际给的钱数double shouldRevMoney = 0; //应该找回的零钱shouldRevMoney = realGiveMoney - consumeMoney;//贪心算法实现——局部最优解int revMoneyAmount = 0;for (int i = 0; i < 7; i ++) {if (MONEY_UNIT[i] <= shouldRevMoney) {shouldRevMoney -= MONEY_UNIT[i];i--; //继续测试此面额的money是否满足revMoneyAmount++; //找回零钱张数加1}if (!shouldRevMoney) {break;}}cout << "找回的零钱最少张数为 :";cout << revMoneyAmount << endl;system("pause");return 0;
}
贪心算法解决找零钱问题相关推荐
- C++贪心算法求解找零钱问题(很形象)
贪心算法求解找零钱问题 1.什么是贪心算法? 贪心算法是一种策略,总是做出在当前看来是最好的选择,总结出来几个字:寻找最优解 举个例子来说就是:"有一个只能往前走的果园,里边有各种水果让你免 ...
- 贪心算法1——找零钱问题
贪心算法是一种不追求最优解,只希望找到较为满意解的方法.贪心算法省去了为找最优解要穷尽所有可能而必须耗费的大量时间,因此它一般可以快速得到比较满意的解. 贪心算法常以当前情况做最优选择,而不考虑各种可 ...
- c语言贪心算法零钱问题,贪心算法(2)——找零钱问题
一.找零钱问题 例题1: 有 1 元,5元,10元,20元,100元,200元的钞票无穷多张.现在使用这些钞票支付X元,最少需要多少张钞票. X = 628 最佳支付方法: 3张200块的,1张20块 ...
- python换零钱_黄哥Python, 贪心算法解决换零钱问题
下面的文字来源于维基百科 贪心算法(英语:greedy algorithm) 又称贪婪算法,是一种在每一步选择中都采取在当前状态下最好或最优(即最有利)的选择,从而希望导致结果是最好或最优的算法.比如 ...
- 【算法分析与设计】实验 动态规划算法解决找零钱问题
问题描述 设有 n n n种不同面值的硬币,各硬币的面值存于数组 T [ 1 : n ] T[1:n] T[1
- 背包问题 贪心算法 java_JS基于贪心算法解决背包问题
前面我们分享了关于js使用贪心算法解决找零问题,本文我们接着为大家介绍JS基于贪心算法解决背包问题. 贪心算法:在对问题求解时,总是做出在当前看来是最好的选择.也就是说,不从整体最优上加以考虑,他所做 ...
- 动态规划解决找零钱问题
动态规划算法 通常用于求解具有某种最优性质的问题.动态规划算法与分治法类似,其基本思想都是将待求解问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解.与分治法不同的是,适合于用动 ...
- c语言装箱问题思路,C语言基于贪心算法解决装箱问题的方法
本文实例讲述了C语言基于贪心算法解决装箱问题的方法.分享给大家供大家参考,具体如下: 问题描述: 有一些箱子,容量为V,同时有n个物品,每个物品有一个体积(小于等于箱子容量),要求将物品全部装入箱子中 ...
- 部分背包的贪婪算法 java_使用JAVA实现算法——贪心算法解决背包问题
packageBasePart;importjava.io.BufferedReader;importjava.io.FileInputStream;importjava.io.IOException ...
最新文章
- tensorflow 安装_tensorflow安装
- mysql command line client和mysql.exe输入密码后闪退问题解决方法
- eve 服务器在哪个文件夹,eve服务器地址
- jvm配置参数,查看大对象直接分配到老年代
- boost 获取日期时间
- 双重认证 也不安全:Gmail、Yahoo mail 已被攻破!
- Python单机版经典塔防游戏源代码
- 用c语言把蜂鸣器封装成函数,C语言蜂鸣器问题
- 微信HOOK之二叉树获取信息 201-12-25
- 下载安装谷歌浏览器插件
- 前端 HTML5+CSS3基础知识一
- wifi频谱仪测试软件,无线局域网频谱分析仪 (Spectrum XT)
- ODOO 开源 ERP 和 CRM
- 金彩教育:店铺运营怎么看数据
- 神经胶质瘤是怎么引起的,胶质瘤和神经胶质瘤
- PWM开发SG90舵机
- 计算机安全论文摘要,计算机安全防护论文摘要怎么写 计算机安全防护论文摘要范文参考...
- ^(?:([^,]*),?){1} 的含义
- 辰视智能董事长冯良炳博士接受起点机器人网专访!
- 富文本编辑器图片上传功能提示falsh版本低请你升级的解决方法
热门文章
- mysql连接oracle视图_oracle数据库视图
- 【图像处理】相机、透镜、人眼、小孔成像原理
- TortoiseSVN (Subversion客户端) 使用手册(中文) (五)
- 一文带你看懂算术编码(C语言)
- mo管理器java_Android开发之通过包管理器获取安装应用信息
- oracle在服务器unix怎么登录,为UNIX服务器设置Oracle全文检索
- SQL server 表之间的关系生成图
- 163企业邮箱注册申请,外贸企业邮箱首选什么邮箱呢?
- 在线音乐迎来产消多维时代,菠萝BOLO要做“原创音乐视频工厂”?
- 怎么用java调用mysql_java 调用mysql实例