找零錢問題的貪心演算法

2021-03-11 08:30:38 字數 935 閱讀 4204

1樓:匿名使用者

問題描述:

當前有復面值分別製為2角5分,1角,5分,1分的硬幣,請給出找n分錢的最佳方案(要求找出的硬幣數目最少)

問題分析:

根據常識,我們到店裡買東西找錢時,老闆總是先給我們最大面值的,要是不夠再找面值小一點的,直到找滿為止。如果老闆都給你找分數的或者幾角的,那你肯定不幹,另外,他也可能沒有那麼多零碎的錢給你找。其實這就是一個典型的貪心選擇問題。

問題的演算法設計與實現:

先舉個例子,假如老闆要找給我99分錢,他有上面的面值分別為25,10,5,1的硬幣數,為了找給我最少的硬幣數,那麼他是不是該這樣找呢,先看看該找多少個25分的, 99/25=3,好像是3個,要是4個的話,我們還得再給老闆一個1分的,我不幹,那麼老闆只能給我3個25分,由於還少給我24,所以還得給我2個10分的和4個1分。

具體實現

//找零錢演算法

//by falcon

//輸入:陣列m,依次存放從大到小排列的面值數,n為需要找的錢數,單位全部為分

//輸出:陣列num,對照陣列m中的面值存放不同面值的硬幣的個數,即找錢方案

2樓:匿名使用者

你已經給出了演算法,還要什麼演算法?你又不說是什麼語言。只好把程式設計思想給內你:

比如要找容n分錢,先拿n除最大零錢面值,可以取模得出餘數。

當然取整就是所找的最大面值零錢的個數。

所得餘數再次處理,用的是一個迴圈結構。

明白了嗎?

n輸入取值

m是定義的面值m[0]是最大面值

k是一個陣列,儲存各面值零錢的個數

i=0do while (n>0)

k[0]=int(n/m[i])

n=mod(n,m[i])

i++end do

3樓:匿名使用者

沒有太看明白你的意思

夢見叫人給自己找零芬角的錢,夢見有人找錢給冥幣

預示著近期你的財運很好,會獲得一份偏財,是吉兆。溝通交談,看問題出在 吧.建議你學會控制,每次生氣發火前,停兩秒,提醒自己不要太過,平常口氣說話,提醒自己發火會讓事情變更壞。就ok啦 謝謝 周公解夢大全查詢夢見買東西別人找零全是古幣 過去的負債將受到清算求償的要求。有什麼欠別人的,不論是金錢物質或人...

在零錢寶存放的資金收益怎麼樣

收益不高,就是貨基的收益,但安全度高,不會虧本,每天萬份收益在0.95元左右,比銀行活期強多了 每天萬分之一左右,我的零錢寶有兩千多,有天有兩毛多的收益 收益肯定比銀行活期存款高很多。零錢寶主要是方便,隨存隨取,不耽誤時間,其他理財產品都有一個封閉期,一個月,三個月,甚至六個月。零錢寶針對手頭有閒錢...

帶上零錢上菜場買菜,你瞭解哪些買菜或配菜的學問呢?如 菜市場人多混雜,要小心錢包

關於配菜,你可以按個人口味去選擇。如果你不知道怎麼搭配,可以在網上找一些選單菜譜參考一下,或者去買一本菜譜回來看看。其他的財物安全,相信你都應該明白的了。應該要注意菜的新鮮問題,比如菜有沒有爛什麼的。還有就是你不能買一些不可以配在一起吃的菜等等 我要寫一篇作文,內容是第一次去菜場買菜,求大家幫我想一...