在现实生活中,经常遇到找零问题,假设有数目不限的面值为20,10,5,1的硬币。

给出需要找零数,求出找零方案,要求:使用数目最少的硬币。
对于此类问题,贪心算法采取的方式是找钱时,总是选取可供找钱的硬币的最大值。比如,需要找钱数为25时,找钱方式为20+5,而不是10+10+5。
下面是C语言实现(DEV c++4.9.9.2运行通过)
#include<stdio.h>void greedyMoney(int m[],int k,int n);int main(void)
{int money[] = {20,10,5,1};int k;k = sizeof(money)/sizeof(money[0]); greedyMoney(money,k,25);system("PAUSE");
}/*
*  m[]:存放可供找零的面值,降序排列
*   k:可供找零的面值种类数
*   n:需要找零数
*/
void greedyMoney(int m[],int k,int n)
{int i;for(i=0;i<k;i++){while(n>=m[i] && n>0){printf("%d.",m[i]); n = n-m[i];}} printf("\n");}
需要说明的是,在一些情况下,找零钱问题使用贪心算法并不能得到整体最优解,其结果可能只是最优解的很好近似。
比如,如果提供找零的面值是11,5,1,找零15。
使用贪心算法找零方式为11+1+1+1+1,需要五枚硬币
而最优解为5+5+5,只需要3枚硬币。

找零钱问题(C语言实现)——贪心算法应用(1)相关推荐

  1. c语言装箱问题思路,C语言基于贪心算法解决装箱问题的方法

    本文实例讲述了C语言基于贪心算法解决装箱问题的方法.分享给大家供大家参考,具体如下: 问题描述: 有一些箱子,容量为V,同时有n个物品,每个物品有一个体积(小于等于箱子容量),要求将物品全部装入箱子中 ...

  2. 装箱问题c语言函数,C语言基于贪心算法解决装箱问题的方法

    本文实例讲述了C语言基于贪心算法解决装箱问题的方法.分享给大家供大家参考,具体如下: 问题描述: 有一些箱子,容量为V,同时有n个物品,每个物品有一个体积(小于等于箱子容量),要求将物品全部装入箱子中 ...

  3. java零钱换整程序_贪心算法换零钱(java)

    贪心算法思想 贪心算法总是做出在当前看来做好的选择.也就是说贪心算法并不从整体最后考虑,他做出的选择只是局部最优选择.他所做出的仅是在某种意义上的局部最优解.贪心算法不是对所有问题都能得到整体最优解, ...

  4. C语言经典贪心算法之加油站问题(详解)

    文章目录 一.贪心算法 二.加油站问题 一.贪心算法 贪心算法暗示一种不追求最优解,只希望找到较为满意解的方法.贪心算法省去了为找最优解要穷尽所有可能而必须耗费大量时间,因此它一般可以快速得到较为满意 ...

  5. c语言背包问题贪心算法,C/C++语言算法篇(一):贪心算法

    贪心算法 正所谓人人都有贪心,C语言算法上的贪心可不是实际意义上的贪心,C语言结构上的贪 心可以说满足两个条件:贪心选择性质和最优子结构性质.满足这两个条件的话就可以尝试用贪心算法解决问题. 贪心选择 ...

  6. 贪心算法 背包问题代码 c语言,用贪心算法求解普通背包问题的C++代码

    用贪心算法求解普通背包问题的C++代码 2019年3月6日 125次阅读 来源: 贪心算法 #include #define  M  100 void display(int &n,doubl ...

  7. C语言之贪心算法疯牛

    疯牛 时间限制:1000 ms  |  内存限制:65535 KB 难度:4 描述 农夫 John 建造了一座很长的畜栏,它包括N (2 <= N <= 100,000)个隔间,这些小隔间 ...

  8. C++贪心算法求解找零钱问题(很形象)

    贪心算法求解找零钱问题 1.什么是贪心算法? 贪心算法是一种策略,总是做出在当前看来是最好的选择,总结出来几个字:寻找最优解 举个例子来说就是:"有一个只能往前走的果园,里边有各种水果让你免 ...

  9. 【无标题】贪心算法-MATLAB实现

    贪心算法-Matlab实现 贪心算法的基本原理 贪心算法的性质 例题 找零钱问题 空瓶换酒问题 活动安排问题 贪心算法的局限性 贪心算法的基本原理 贪心算法是使所做的选择看起来都是当前最佳的,期望通过 ...

  10. python 实现贪心算法

    文章目录 贪心算法 一. 算法概述 1. 简介 2. 基本步骤 二. 基本实现 1. 实例 2. 分析步骤 3. 代码实现 三. 数模实战 1. 题目展示 2. 题目分析 2.1 公式 2.2 实现 ...

最新文章

  1. Python:Python多种集成开发环境(IDE,编译器)的简介、安装、入门、使用方法之详细攻略
  2. Python之方法调用
  3. NYOJ 84 阶乘的0
  4. STM32开发 -- 进制与字符串间的转换
  5. Git:常用命令(二)
  6. java hashmap value_Java HashMap values() 方法
  7. 焦作师范高等专科学校对口计算机分数线,焦作师范高等专科学校录取分数线2018...
  8. 多线程的单元测试工具 - GroboUtils
  9. 关于asp.net会话阻塞
  10. 如何保持婚姻的新鲜感?
  11. Linux下设置文件权限
  12. 软件项目技术点(4)——实现点击画布上元素
  13. 地图标注不完整图片_“地图帝”不规范使用图件之Anton Balazh作品介绍
  14. linux iozone测试工具,iozone命令 – 进行linux下的硬盘性能测试
  15. html中怎么设置一个籍贯选择,行政区、籍贯选择标签
  16. 九大百度竞价操作技巧
  17. 我是高管,空降的第60天,被辞职了,惨惨惨
  18. [SV]SystemVerilog Structured Procedures --- always_comb、always_ff、always_latch
  19. 找靓机用计算机表白,找靓机怎么样-2300元的鼠标用起来怎么样?Finalmouse Ultralight Phantom体验...
  20. 漏洞5万美元一个贵不贵?

热门文章

  1. 百度网页快照删除服务恢复运营
  2. R/ggplot2保存图片中文字体至PDF——showtext包一文清除所有障碍
  3. HTML在线转换成PDF
  4. 计算机图画大赛作品六年级,小学学生电脑绘画比赛活动方案-20210407071921.docx-原创力文档...
  5. win7文件服务器代码,win7搭建文件服务器
  6. myeclipse中设置括号匹配颜色
  7. 木马可以损坏计算机硬件么,台式电脑总是自动重启怎么处理
  8. 计算机技术对人脸识别的作用,人脸识别技术有什么功能特点
  9. unity3d双面材质_unity3d中创建双面材质
  10. 共享的计算机用户账户限制,win10系统使用共享功能被提示用户账户限制的方案...