將一筆零錢換成5分、2分和1分的硬幣,要求每種硬幣至少有一枚,有幾種不同的換法?
輸入格式:
輸入在一行中給出待換的零錢數額x∈(8,100)。
輸出格式:
要求按5分、2分和1分硬幣的數量依次從大到小的順序,輸出各種換法。每行輸出一種換法,格式為:“fen5:5分硬幣數量, fen2:2分硬幣數量, fen1:1分硬幣數量, total:硬幣總數量”。最后一行輸出“count = 換法個數”。
代碼如下:(程序有點問題,超時可以理解,但是還有一個答案錯誤,后面再補充吧)
#!/usr/bin/python # -*- coding: utf-8 -*- n = int(input()) a,b,c=1,2,5 count = 0 for x in range(1,n): for y in range(1,n): for z in range(1,n): if a*x +b*y + c*z == n : count += 1 print("fen5:{}, fen2:{}, fen1:{}, total:{}".format(z,y,x,x+y+z)) print("count =",count)
錯誤圖:
這個程序理解起來不難,實現起來也不難。嵌套循環即可。
讀書和健身總有一個在路上