python基礎 找零問題

2022-07-21 20:33:19 字數 850 閱讀 9634

給定要找回的總錢數和硬幣的種類,求出找零所需最少的硬幣數目。

例如:總錢數63,硬幣種類為25、21、10、5、1,求出最小硬幣數

分析:我們可以先假設只有一種硬幣1,

假如總錢數為1,硬幣數就為1,總錢數為2,則硬幣數為2.

則總錢數n,所需的硬幣數就是n個。

以列表形式表示不同總錢數所對應的硬幣數目,即:

coinused = [i for i in range(money + 1)]

依次類推,假如硬幣種類不止一種,我們只需要對比對應總錢數時所需硬幣數的多少就可以了。

**如下:

def

coin_change(values, money, coinused):

"""values:錢幣對應的種類列表

money: 要找回的總錢數

coinused: 對應於錢幣總數money所使用的硬幣數目,以列表形式index對於元素值呈現

"""for cents in range(1,money+1):

for value in

values:

if cents >= value and coinused[cents-value]+1 coinused[cents] = coinused[cents-value]+1

print('

面值為的最小硬幣數為

'.format(cents, coinused[cents]))

list = [1,5,25,21,10]

money = 63coinsused = [i for i in range(money+1)]

coin_change(list, 63,coinsused)

python找零錢程式 Python 找零問題

coding utf 8 def change money money print 總金額 str money 元 loop true tmp 面值列表 單位 元 type 100,50,20,10,5,1,0.5,0.1 sy int money 10 將傳入的金額 10,轉換為 角 單位 whi...

買票找零問題

問題描述 一場激烈足球賽即將開始,售票員緊張地賣票著 每張球票50元,現在有2n 1 n 18 個球迷排隊購票,其中n個手持50元鈔票,另外n個手持100元鈔票。假設開始售票時售票處沒有零錢可以找零。問這2n個人有多少種排隊方式,不至使售票處出現找不出零的局面?例如當n 3時,共6人,3人持50元,...

錢幣找零問題

錢幣找零問題 這個問題在我們的日常生活中就更加普遍了。假設1元 2元 5元 10元 20元 50元 100元的紙幣分別有c0,c1,c2,c3,c4,c5,c6張。現在要用這些錢來支付k元,至少要用多少張紙幣?用貪心演算法的思想,很顯然,每一步盡可能用面值大的紙幣即可。在日常生活中我們自然而然也是這...