Вкассе имеются денежные купюры достоинством в 1,5,10,50,100,500 рублей. необходимо выплатить сумму n наименьшим кол-вом купюр написать на паскале (используя циклы)
Const c:array[1..6] of integer=(1,5,10,50,100,500); var i:byte; n,d:integer; k:array[1..6] of integer; begin Write('Введите значение суммы: '); Read(n); for i:=1 to 6 do k[i]:=0; d:=n; i:=6; while d>0 do begin k[i]:=d div c[i]; d:=d mod c[i]; Dec(i) end; Write(n,' => '); for i:=6 downto 1 do if k[i]>0 then Write(c[i],'x',k[i],' ') end.
c:array[1..6] of integer=(1,5,10,50,100,500);
var
i:byte;
n,d:integer;
k:array[1..6] of integer;
begin
Write('Введите значение суммы: '); Read(n);
for i:=1 to 6 do k[i]:=0;
d:=n; i:=6;
while d>0 do begin
k[i]:=d div c[i];
d:=d mod c[i];
Dec(i)
end;
Write(n,' => ');
for i:=6 downto 1 do
if k[i]>0 then Write(c[i],'x',k[i],' ')
end.
Тестовое решение:
Введите значение суммы: 8947
8947 => 500x17 100x4 10x4 5x1 1x2