贪心算法求解找零钱问题
1.什么是贪心算法?
-
贪心算法是一种策略,总是做出在当前看来是最好的选择,总结出来几个字:寻找最优解
-
举个例子来说就是:“有一个只能往前走的果园,里边有各种水果让你免费摘,免费摘嘛当然找值钱的摘,所以一开始你就直接选择最贵的石榴,石榴摘完后再摘哪个?看看前边有香蕉和葡萄,比较了一下摘了香蕉,香蕉过后继续往前走,然后摘了橘子……,最后一条路走下来了,你摘了石榴、香蕉、橘子、苹果、桃子,总价值为25元”,故事到此结束,当你抱着一堆25元钱水果回来的时候,你已经寻找到了最优解,贪心算法就是这样的一种策略,根据眼前的条件进行取舍去寻找最优解;
2.找零钱问题构思
找零钱当然要尽快把钱找给对方,怎么做到最快,就是先取最大的钞票,然后再逐渐用小钞票,打个比方,如果你要找我32块钱,那最快的方法就是从你钱包里取出三张10块的,两张1块的, 利用贪心算法就是先看看最大钞票够不够找零,够的话先用最大的钞票,再用小的钞票;
3.代码部分
说了这么多,还是来看代码理解的快些。
#include<iostream>
using namespace std;
int main()
{
int temp,num=0; //temp为某种币值需要多少张钱,num为总共需要多少张
int n=7;
int moneylist[</