博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
贪婪法
阅读量:5080 次
发布时间:2019-06-12

本文共 1004 字,大约阅读时间需要 3 分钟。

/*贪婪法是一个不追求最优解,只希望得到较为满意的解的方法。 因为它省去了为找最优解而穷尽所需的时间,所以贪婪法一般可以快速 得到满意的解。贪婪法在求解过程的每一步都选取一个局部最优的策略, 把问题规模缩小,最后把每一步的结果合并起来形成一个全局解。 */ /*贪婪法的基本步骤: (1)从某个初始解出发 (2)采用迭代的过程,当可以向目标前进一步时,就根据局部最优策略,得到 一部分解,缩小问题规模。 (3)将所有解综合起来 */ //实例 用贪婪法解硬币找零问题 /*假设有一种货币,它的面值为1分,2分,5分和1角的硬币,最少需要多少个硬币来 找出k分钱的零钱。按照贪婪法的思想,需要不断使用面值最大的硬币,如要找零的值 小于最大的硬币值,则尝试第二大的硬币,依次类推。*/ //代码清单: #include<iostream> using namespace std; #define ONEFEN 1 #define TWOFEN 2 #define FIVEFEN 5 #define ONEJIAO 10 int main() { int money; int onefen=0,twofen=0,fivefen=0,onejiao=0; cout<< "输入要找零的钱(以分为单位):" ; cin>>money; //不断尝试每一种硬币 while(money>=ONEJIAO) { onejiao++; money -=ONEJIAO; } while(money>=FIVEFEN) { fivefen++; money -=FIVEFEN; } while(money>=TWOFEN) { twofen++; money -=TWOFEN; } while(money>=ONEFEN) { onefen++; money -=ONEFEN; } //输出结果 cout<< "1角硬币数:"<<onejiao<<endl; cout<< "5分硬币数:"<<fivefen<<endl; cout<< "2分硬币数:"<<twofen<<endl; cout<< "1分硬币数:"<<onefen<<endl; return 0; }

转载于:https://www.cnblogs.com/springside5/archive/2011/12/31/2486311.html

你可能感兴趣的文章
【9111】高精度除法(高精度除高精度)
查看>>
【hihocoder 1312】搜索三·启发式搜索(普通广搜做法)
查看>>
JavaFX中ObservableValue类型
查看>>
杭电 1097 A hard puzzle
查看>>
[转载]INFORMIX锁机制及如何剖析其锁申辩(第二部门)
查看>>
Andriod-项目stymqjlb-学习笔记2-原型
查看>>
Web AppDomain
查看>>
JQuery创建规范插件
查看>>
AD 域服务简介(三)- Java 对 AD 域用户的增删改查操作
查看>>
Unity中Text渐变色,和Text间距
查看>>
SSID、BSSID、BSS等区分
查看>>
unittest学习3:用例执行
查看>>
Jmeter_1:安装、汉化
查看>>
C++ 泛型
查看>>
C++队列
查看>>
初次尝试python爬虫,爬取小说网站的小说。
查看>>
vue-cli脚手架build目录下utils.js工具配置文件详解
查看>>
switch支持的数据类型
查看>>
通过Eureka自带REST API强行剔除失效服务
查看>>
C++11 lambda表达式是如何实现的?
查看>>