《贪心算法-找零问题-实验报告》由会员分享,可在线阅读,更多相关《贪心算法-找零问题-实验报告(7页珍藏版)》请在人人文库网上搜索。

1、实验三 课程名称:算法设计与实现 实验名称:贪心算法-找零问题 实验日期:2019年5月2日 仪器编号:007 班级:数媒0000班姓名:郝仁 学号 实验内容假设零钱系统的币值是1,p,p2,,pn,p1,且每个钱币的重量都等于1,设计一个最坏情况下时间复杂度最低的算法,使得对任何钱数y,该算法得到的零钱个数最少,说明算法的主要设计思想,证明它的正确性,并给出最坏情况下的时间复杂度。实验分析引理1(离散数学其及应用3.1.4):若n是正整数,则用25美分、10美分、5美分和1美分等尽可能少的硬币找出的n美分零钱中,至多有2个10美分、至多有1个5美分、至多有4个1美分硬币,而不能有2个10美分。

2、和1个5美分硬币。用10美分、5美分和1美分硬币找出的零钱不能超过24美分。证明如果有超过规定数目的各种类型的硬币,就可以用等值的数目更少的硬币来替换。注意,如果有3个10美分硬币,就可以换成1个25美分和1个5美分硬币;如果有2个5美分硬币,就可以换成1个10美分硬币;如果有5个1美分硬币,就可以换成1个5美分硬币;如果有2个10美分和1个5美分硬币,就可以换成1个25美分硬币。由于至多可以有2个10美分、1个5美分和4个1美分硬币,而不能有2个10美分和1个5美分硬币,所以当用尽可能少的硬币找n美分零钱时,24美分就是用10美分、5美分和1美分硬币能找出的最大值。假设存在正整数n,使得有办。

3、法将25美分、10美分、5美分和1美分硬币用少于贪心算法所求出的硬币去找n美分零钱。首先注意,在这种找n美分零钱的最优方式中使用25美分硬币的个数q,一定等于贪心算法所用25美分硬币的个数。为说明这一点,注意贪心算法使用尽可能多的25美分硬币,所以qq。但是q也不能小于q。假如q小于q,需要在这种最优方式中用10美分、5美分和1美分硬币至少找出25美分零钱。而根据引理1,这是不可能的。由于在找零钱的这两种方式中一定有同样多的25美分硬币,所以在这两种方式中10美分、5美分和1美分硬币的总值一定相等,并且这些硬币的总值不超过24美分。10美分硬币的个数一定相等,因为贪心算法使用尽可能多的10美分。

4、硬币。而根据引理1,当使用尽可能少的硬币找零钱时,至多使用1个5分硬币和4个1分硬币,所以在找零钱的最优方式中也使用尽可能多的10美分硬币。类似地,5美分硬币的个数相等;最终,1美分的个数相等。同上,由于1+p1+p2+p3+.pk-1=pk - 1#includeusing namespace std;/money需要找零的钱/coin可用的硬币的种类/n硬币种类的数量void ZhaoLing(int money, int *coin, int n)int *coinNum = new intmoney + 1();/存储1.money找零最少需要的硬币的个数int *coinValue 。

5、= new intmoney + 1();/最后加入的硬币,方便后面输出是哪几个硬币coinNum0 = 0;for (int i = 1; i = coinj)/找零的钱大于这个硬币的面值if (coinNumi - coinj + 1 0)cout Money;cout n;int*coin = (int*)malloc(n * sizeof(int);/定义动态长度的数组cout p;if (p 0) break;else cout 输入的数小于零,请重新输入 endl;for (i = 0; i n; i+) coini = pow(p, i);cout 找零系统中的零钱种类为: endl;for (i = 0; i n; i+) cout coini ,;cout endl;ZhaoLing(Money, coin, n);system(pause);return 0;实验结果。

c语言贪心算法找零问题,贪心算法-找零问题-实验报告相关推荐

  1. c语言产生式系统动物识别系统,简单动物识别系统的知识表示实验报告

    简单动物识别系统的知识表示实验报告 一. 实验目的: 1. 2. 理解和掌握产生式知识表示方法. 能够用选定的编程语言实现产生式系统的规则库. 二. 实验内容和要求: 1.以动物识别系统的产生式规则为 ...

  2. C语言 自动排课系统课程设计(附源码,实验报告)

    学校教务的管理作为高校教育信息化工作中的一项重要工作,如何构建一个具有开放性.实用性和灵活性的平台,是一个值得探讨的课题.其中,作为学校教务重点环节之一的排课系统也尤为重要.以前,在统筹安排各班级上课 ...

  3. c语言去除图像斑点,武汉理工-图像检测与处理技术-实验报告.doc

    学生学号 0121304940834实验课成绩学 生 实 验 报 告 书 实验课程名称图像检测与处理技术开 课 学 院机电工程学院指导教师姓名刘清元学 生 姓 名李勇学生专业班级测控1304 2015 ...

  4. numpy实现K-means聚类算法(可选是否已知类别数)和VQ-LBG矢量量化算法以及散点数据生成(含完整实验报告)

    numpy实现K-means聚类算法(可选是否已知类别数)和VQ-LBG矢量量化算法以及散点数据生成(含完整实验报告) 实验报告完整,质量不低,加上你学校的封面就能交,也可用来交流学习: (20条消息 ...

  5. LeetCode 860. 柠檬水找零(贪心)

    1. 题目 在柠檬水摊上,每一杯柠檬水的售价为 5 美元. 顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯. 每位顾客只买一杯柠檬水,然后向你付 5 美元.10 美元或 20 美 ...

  6. 算法训练一(贪心、二分)(含解题思路)(上)

    目录 7-1最少失约(贪心) AC代码: 7-2删数问题(贪心) 7-3区间覆盖(贪心) AC代码: 7-7加油站之最小加油次数(贪心+优先队列) AC代码: 7-8求解删数问题(贪心) AC代码: ...

  7. 算法训练一(贪心、二分)(含解题思路)(下)

    目录 7-15种树(贪心) AC代码: 7-16会场安排问题(贪心) AC代码: 7-17最优合并问题(贪心) AC代码: 7-18简简单单的数学题(位运算 + 哈希表) AC代码: 7-19h148 ...

  8. _32LeetCode代码随想录算法训练营第三十二天-贪心算法 | 738.单调递增的数字 、714.买卖股票的最佳时机含手续费、968.监控二叉树

    _32LeetCode代码随想录算法训练营第三十二天-贪心算法 | 738.单调递增的数字 .714.买卖股票的最佳时机含手续费.968.监控二叉树 题目列表 738.单调递增的数字 714.买卖股票 ...

  9. java贪心算法 区间调度_贪心算法-区间调度问题解之证明(示例代码)

    一.贪心算法 定义:一个算法是贪心算法,如果它是通过一些小的步骤来一个求解,并且在每一步根据局部情况选择一个决定,使得某些主要的指标得到优化. 二.区间调度问题 1. 问题:我们有一组需求{1,2,3 ...

最新文章

  1. CentOS 6.5 下Vim 配置图解
  2. mooc浙大数据结构PTA习题之一元多项式的乘法与加法运算
  3. Java Web HelloWorld!
  4. 【报错笔记】sturts2程序运行出现错误:Struts has detected an unhandled exception
  5. VUE全局导航守卫、 请求、响应拦截器 的设置
  6. linux删除第二次出现的字符,linux下 怎样删除文件名中包含特殊字符的文件
  7. realloc invalid pointer错误解析
  8. VUE3(template使用)
  9. 转载:制造业信息化:计划模拟APS软件驱动敏捷制造
  10. Python进阶(十一)装饰器
  11. C++课程设计(电影院自助售票管理系统)
  12. html电子名片,HTML5 精美的双面电子名片
  13. (二)D3D9视频显示的流程与初始化
  14. VMware 安装失败解决方案,亲测有效
  15. 华为新机亮剑鸿蒙系统,华为亮剑,超级环绕屏+麒麟9000+鸿蒙系统,欣喜油然而生...
  16. Quasi-Newton拟牛顿法(共轭方向法)
  17. 大数据管理与应用专业总结笔记
  18. commitizen和cz-customizable配置git commit message 1
  19. Interpreter(解释器模式)行为型
  20. 什么是事务的一致性?一致性和原子性的区别是什么?

热门文章

  1. 电商ERP如何接入快递鸟电子面单API?
  2. java根据出生日期计算年龄_Java 根据出生日期获得年纪
  3. Webots中常用的函数(C版)
  4. linux+zip+加密+无交互,Linux下zip加密压缩
  5. 颜色的前世今生15·CMYK系统(原色的选择)
  6. cad lisp 二次抛物线_用Cad画二次抛物线.doc
  7. html hr线条粗细,html中hr怎么设置粗细
  8. MySQL - 设计游戏用户信息表
  9. 使用Eclips开发java程序
  10. 问题:设计一个大学教师和学生管理程序, 教师包括 编号、姓名、职称和教研室 数据的输入输出; 大学生包括编号、姓名、性别、班号、英语、高等数学和数据结构三门课程成绩的输入输出和计算平均分; 研究生包