2020年5月2日 星期六

[C_MM249-易] 硬幣付錢方式

[C_MM249-易] 硬幣付錢方式

成績: 0 / 倒扣: 0.8
問題描述 :
小明某一天要去吃麵,已知身上只有 5 元、 10 元、 50 元硬幣各 4 個,假設一碗麵為 n 元,不可以找零錢,則他可以有幾種硬幣組合付錢方式呢 ? 請將所有可能的組合列出,每種組合,請列出 5 元、 10 元、 50 元硬幣各硬幣所需的數量;每種組合 ( 每一列 ) 由大到小排列。若無法付錢時,則輸出 null 。
例如一碗麵為 10 元答案如下 (5 元硬幣數量 , 10 元硬幣數量 , 50 元硬幣數量 ) :
2,0,0
0,1,0
輸入說明 :
輸入 1 整數,代表 1 碗麵的價錢。
例如:
10
輸出說明 :
列出所有可能的組合列出,每種組合。請列出 5 元、 10 元、 50 元硬幣各種硬幣所需的數量,用逗號分隔。每種組合 ( 每一列 ) 由大到小排列。若無法付錢時,則輸出 null 。
例如,輸出為:
2,0,0
0,1,0
範例 :

輸入範例輸出範例
102,0,0
0,1,0
253,1,0
1,2,0
2504,3,4
2,4,4
500null

m = int(input())
result = []
for i in reversed(range(0, 5)):
    for j in reversed(range(0, 5)):
        for k in reversed(range(0, 5)):
            if i*5 + j*10 + k*50 != m:
                continue
            else:
                result.append([i,j,k])
if len(result) == 0:
    print('null')
else:
    for i in range(len(result)):
        strs = ''
        for j in result[i]:
            strs += str(j)+','
        print(strs.strip(','))

沒有留言:

張貼留言