// PascalABC.NET 3.1, сборка 1198 от 11.03.2016 begin var Bnk:=Arr(500,100,50,10); var s:=ReadInteger('Сдача, руб:'); var Kol:=Arr(0,0,0,0); for var i:=0 to 3 do begin Kol[i]:=s div Bnk[i]; s:=s mod Bnk[i] end; if s<>0 then Writeln('Сдачу дать невозможно') else begin Writeln('Следует дать:'); for var i:=0 to 3 do Writeln('банкнот по ',Bnk[i],' руб - ',Kol[i],' шт.') end end.
Тестовое решение: Сдача, руб: 850 Следует дать: банкнот по 500 руб - 1 шт. банкнот по 100 руб - 3 шт. банкнот по 50 руб - 1 шт. банкнот по 10 руб - 0 шт.
procedure SUM(x,y,z:array of integer);
begin
for var i:=0 to z.Length-1 do z[i]:=x[i]+y[i]
end;
procedure ArrPrint(x:array of integer);
// никому она не нужна, на раз попросили...
begin
x.Println(', ');
end;
procedure ArrInit(var x:array of integer;n,from,&to:integer);
// никому она не нужна, на раз попросили...
begin
x:=ArrRandom(n,from,&to)
end;
begin
var a,b,c:array of integer;
ArrInit(a,15,10,30); ArrPrint(a);
ArrInit(b,15,25,60); ArrPrint(b);
SetLength(c,15);
SUM(a,b,c); ArrPrint(c)
end.
Тестовое решение:
23, 15, 13, 23, 22, 24, 20, 27, 29, 19, 29, 28, 30, 10, 24
48, 32, 31, 59, 36, 34, 47, 28, 42, 30, 40, 58, 25, 30, 33
71, 47, 44, 82, 58, 58, 67, 55, 71, 49, 69, 86, 55, 40, 57
begin
var Bnk:=Arr(500,100,50,10);
var s:=ReadInteger('Сдача, руб:');
var Kol:=Arr(0,0,0,0);
for var i:=0 to 3 do begin
Kol[i]:=s div Bnk[i];
s:=s mod Bnk[i]
end;
if s<>0 then Writeln('Сдачу дать невозможно')
else begin
Writeln('Следует дать:');
for var i:=0 to 3 do
Writeln('банкнот по ',Bnk[i],' руб - ',Kol[i],' шт.')
end
end.
Тестовое решение:
Сдача, руб: 850
Следует дать:
банкнот по 500 руб - 1 шт.
банкнот по 100 руб - 3 шт.
банкнот по 50 руб - 1 шт.
банкнот по 10 руб - 0 шт.