貪心演算法解硬幣找零問題
假如有一種貨幣,它有面值為1分、2分、5分和1角的硬幣,最少需要多少個硬幣來找出K分錢的零錢?
按照貪心演算法的思想,需要不斷地使用面值最大的硬幣。如果要找零的值小於最大的硬幣值,則嘗試第二大的硬幣,依次類推。
程式碼如下:
#include <iostream>
using namespace std;
#define ONE 1
#define TWO 2
#define FIVE 5
#define TEN 10
int main()
{
int money;
int one=0,two=0,five=0,ten=0;
cout<<"輸入要找零的錢(以分為單位):";
cin>>money;
//嘗試每一種硬幣
while (money>=TEN)
{
ten++;
money-=TEN;
}
while (money>=FIVE)
{
five++;
money-=FIVE;
}
while (money>=TWO)
{
two++;
money-=TWO;
}
while (money>=ONE)
{
one++;
money-=ONE;
}
//輸出結果
cout<<"1角硬幣數:"<<ten<<endl;
cout<<"5分硬幣數:"<<five<<endl;
cout<<"2分硬幣數:"<<two<<endl;
cout<<"1分硬幣數:"<<one<<endl;
return 0;
}
雖然貪心演算法不是對所有問題都能得到整體的最優解,但是實際應用中的許多問題都可以使用貪心演算法得到最優解。有時即使使用貪心演算法不能得到問題的最優解,但最終結果也是較優的解
相關文章
- “人民幣找零”問題的貪婪法解決演算法演算法
- 詳解動態規劃最少硬幣找零問題–JavaScript實現動態規劃JavaScript
- 使用動態規劃完美解決硬幣找零問題(Python)動態規劃Python
- 詳解動態規劃最少硬幣找零問題--JavaScript實現動態規劃JavaScript
- 貪心演算法——換酒問題演算法
- 使用貪心演算法解決集合覆蓋問題演算法
- 加油站問題(貪心演算法)演算法
- 貪心演算法篇——區間問題演算法
- 演算法——貪心演算法解0-1揹包問題演算法
- 活動選擇問題理解貪心演算法演算法
- 汽車加油問題 SDUT OJ 貪心演算法演算法
- 探索貪心演算法:解決最佳化問題的高效策略演算法
- LeetCode解題記錄(貪心演算法)(二)LeetCode演算法
- LeetCode解題記錄(貪心演算法)(一)LeetCode演算法
- 貪心演算法演算法
- 揹包問題演算法全解析:動態規劃和貪心演算法詳解演算法動態規劃
- [經典演算法]海盜分金問題sql求解(貪心演算法)演算法SQL
- DAG模型——硬幣問題模型
- 貪心演算法(貪婪演算法,greedy algorithm)演算法Go
- 反悔貪心雜題
- 學一下貪心演算法-學一下貪心演算法演算法
- 貪心演算法Dijkstra演算法
- 9-貪心演算法演算法
- 貪心 做題筆記筆記
- 「貪心」做題記錄
- 常用演算法之貪心演算法演算法
- 演算法基礎–貪心策略演算法
- Moving Tables(貪心演算法)演算法
- Python演算法:貪心策略Python演算法
- “裝箱”問題的貪婪法解決演算法演算法
- 資料結構與演算法之硬幣組合問題資料結構演算法
- 貪心
- 馬踏棋盤演算法(騎士周遊問題)----遞迴與貪心優化演算法演算法遞迴優化
- 貪心(入門簡單題)
- “馬的遍歷”問題的貪婪法解決演算法演算法
- 演算法 拿硬幣演算法
- leetcode1546題解【字首和+貪心】LeetCode
- C++奧賽一本通貪心題解C++