7-69 換硬幣 (20分)
將一筆零錢換成5分、2分和1分的硬幣,要求每種硬幣至少有一枚,有幾種不同的換法?
輸入格式:
輸入在一行中給出待換的零錢數額x∈(8,100)。
輸出格式:
要求按5分、2分和1分硬幣的數量依次從大到小的順序,輸出各種換法。每行輸出一種換法,格式為:「fen5:5分硬幣數量, fen2:2分硬幣數量, fen1:1分硬幣數量, total:硬幣總數量」。最後一行輸出「count = 換法個數」。
輸入樣例:
輸出樣例:fen5:2, fen2:1, fen1:1, total:4fen5:1, fen2:3, fen1:2, total:6
fen5:1, fen2:2, fen1:4, total:7
fen5:1, fen2:1, fen1:6, total:8
count = 4
#include
intmain()
}}}printf
("count = %d\n"
,count)
;return0;
}
執行結果如下:
13
fen5:
2, fen2:
1, fen1:
1, total:
4fen5:
1, fen2:
3, fen1:
2, total:
6fen5:
1, fen2:
2, fen1:
4, total:
7fen5:
1, fen2:
1, fen1:
6, total:
8count =
4
關鍵之處在於三種硬幣要以從大到小的方式輸出,顯然5分硬幣最多有x/5個,兩分硬幣最多有x/2個,一分硬幣最多有x個,所以這裡要注意。
其實通常我們比較常見的是按從小到大的順序輸出,只需要稍作改變。
#include
intmain()
}}}printf
("count = %d\n"
,count)
;return0;
}
執行結果如下:
13
fen5:
1, fen2:
1, fen1:
6, total:
8fen5:
1, fen2:
2, fen1:
4, total:
7fen5:
1, fen2:
3, fen1:
2, total:
6fen5:
2, fen2:
1, fen1:
1, total:
4count =
4
C語言 習題4 5 換硬幣
將一筆零錢換成5分 2分和1分的硬幣,要求每種硬幣至少有一枚,有幾種不同的換法?輸入格式 輸入在一行中給出待換的零錢數額x 8,100 輸出格式 要求按5分 2分和1分硬幣的數量依次從大到小的順序,輸出各種換法。每行輸出一種換法,格式為 fen5 5分硬幣數量,fen2 2分硬幣數量,fen1 1分...
C語言 習題4 5 換硬幣 20分
將一筆零錢換成5分 2分和1分的硬幣,要求每種硬幣至少有一枚,有幾種不同的換法?輸入在一行中給出待換的零錢數額x 8,100 要求按5分 2分和1分硬幣的數量依次從大到小的順序,輸出各種換法。每行輸出一種換法,格式為 fen5 5分硬幣數量,fen2 2分硬幣數量,fen1 1分硬幣數量,total...
C語言 習題4 5 換硬幣 (20 分 錯誤分析。
將一筆零錢換成5分 2分和1分的硬幣,要求每種硬幣至少有一枚,有幾種不同的換法?輸入在一行中給出待換的零錢數額x 8,100 要求按5分 2分和1分硬幣的數量依次從大到小的順序,輸出各種換法。每行輸出一種換法,格式為 fen5 5分硬幣數量,fen2 2分硬幣數量,fen1 1分硬幣數量,total...