本题等效于将10元钱用5元,2元,1元如何组成。
var m,m5,m2,m1:integer;
begin
readln(m); //输入总钱数
writeln('5Y':5,'2Y':5,'1Y':5);
writeln('-----------------------');
for m5:=0 to (m div 5) do //5元最多张数为 m div5
for m2:=0 to ((m-m5*5) div 2) do //从剩余钱数里计算2元最多张数
begin
m1:=m-m5*5-m2*2; //扣除5元,2元的钱数以后就是1元的张数
writeln(m5:5,m2:5,m1:5);
end;
end.
输入10元:
![](https://video.ask-data.xyz/img.php?b=https://iknow-pic.cdn.bcebos.com/0e2442a7d933c895aef0c558d21373f082020002?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto)
如果不允许0张出现,那么程序修改如下:
var m,m5,m2,m1:integer;
begin
readln(m); //输入总钱数
writeln('5Y':5,'2Y':5,'1Y':5);
writeln('-----------------------');
for m5:=1 to (m div 5) do //5元最多张数为 m div5
for m2:=1 to ((m-m5*5) div 2) do //从剩余钱数里计算2元最多张数
begin
m1:=m-m5*5-m2*2; //扣除5元,2元的钱数以后就是1元的张数
if m1>0 then writeln(m5:5,m2:5,m1:5);
end;
end.
![](https://video.ask-data.xyz/img.php?b=https://iknow-pic.cdn.bcebos.com/574e9258d109b3dea65cb84bcfbf6c81800a4c35?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto)