Python編程算法【二十】 兌換硬幣
2022-10-31 08:46 作者:SPC編程愛(ài)好者 | 我要投稿
【案例內(nèi)容】
將5元的人民幣換成1元、5角和1角的硬幣,共有多少種不同的兌換方法?
【解題思路】
本題又是一道窮舉法的編程算法題。假設(shè)1元的數(shù)量為 yy,5角的數(shù)量為 wj,1角的數(shù)量為 yj。那么,可以將5元換算成50分,1元換算成10分,然后根據(jù)題意去循環(huán)找出滿(mǎn)足等式:
yy * 10 + wj * 5 + yj * 1 = 50 的所有 yy、wj 和 yj 的值;也可以將5角換算成0.5元,1角換算成0.1元,然后找出所有滿(mǎn)足等式:yy * 1 + wj * 0.5 +?yj * 0.1 = 5 的yy、wj?和?yj 的值即可。
另外,yy(1元的數(shù)量)的取值范圍在0 - 5之間,包括0和5;
wj(5角的數(shù)量)的取值范圍在0 - 10之間,包括0和10;
yj(1角的數(shù)量)的取值范圍在0 - 50之間,包括0和50;
再設(shè)個(gè)變量 n ,用來(lái)記錄兌換方法,最后用三個(gè)for循環(huán)即可找出所有兌換方法。
【Python代碼】

把本題的5元改為其他數(shù)額,代碼也可以通用。需注意的是,兌換時(shí),每種數(shù)額不同的硬幣數(shù)量可以為0,即不兌換該數(shù)額的硬幣,這種情況也要考慮進(jìn)去,這是題目隱含的一個(gè)條件。
標(biāo)簽: