題目:
假設1元、2元、5元、10元、20元、50元、100元的紙幣分別有c0, c1, c2, c3, c4, c5, c6張。
現在要用這些錢來支付k元,至少要用多少張紙幣?
用貪心演算法的思想,
很顯然,每一步盡可能用面值大的紙幣即可。
在日常生活中我們自然而然也是這麼做的。在程式中已經事先將value按照從小到大的順序排好。
使用貪心來解決,思路:
從最大值100元開始計算,根據自己現有的對應金錢的票數進行取最小值
例如:現有有500元,但是你100元只有四張,對於100能夠約分得到5,但是實際剩餘只有4張,所以兩者取最小值,並且根據每次求出的減去在進行運算,得出最後money是否為0,如果是那麼就夠,不是說明不能
#include
#include
#include
using
namespace std;
const
int n=7;
int count[n]=;
//對應錢的現有張數
int value[n]=;
//若是能夠合理得到那麼就會返回張數,否則返回-1
intcount_money
(int money)
if(money==0)
return num;
else
return-1
;}intmain()
錢幣找零問題
錢幣找零問題 這個問題在我們的日常生活中就更加普遍了。假設1元 2元 5元 10元 20元 50元 100元的紙幣分別有c0,c1,c2,c3,c4,c5,c6張。現在要用這些錢來支付k元,至少要用多少張紙幣?用貪心演算法的思想,很顯然,每一步盡可能用面值大的紙幣即可。在日常生活中我們自然而然也是這...
C 貪心演算法 錢幣找零問題
問題描述 假設1元 2元 5元 10元 20元 50元 100元的紙幣分別有c0,c1,c2,c3,c4,c5,c6張。現在要用這些錢來支付k元,至少要用多少張紙幣?用貪心演算法的思想,很顯然,每一步盡可能用面值大的紙幣即可。在日常生活中我們自然而然也是這麼做的。實現 using system na...
買票找零問題
問題描述 一場激烈足球賽即將開始,售票員緊張地賣票著 每張球票50元,現在有2n 1 n 18 個球迷排隊購票,其中n個手持50元鈔票,另外n個手持100元鈔票。假設開始售票時售票處沒有零錢可以找零。問這2n個人有多少種排隊方式,不至使售票處出現找不出零的局面?例如當n 3時,共6人,3人持50元,...