本题等效于将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元:
如果不允许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.