В банкомате имеются в достаточном количестве купюры номиналом 50, 100, 200, 500 и 1000 рублей. Найти минимальное количество купюр, которое необходимо использовать, чтобы выдать сумму в n рублей или вывести -1, если указанную сумму выдать нельзя.
Входные данные. Одно число n (1 ≤ n ≤ 10^6).
Выходные данные. Вывести наименьшее количество купюр, которыми можно выдать n рублей.
(Pascal)
Answers & Comments
Ответ:
выводится: сколько и каких купюр надо выдать.
если запрашиваемую сумму выдать невозможно - выведется соответствующее сообщение.
Объяснение:
Pascal
const
k: array[0..4] of integer =(1000,500,200,100,50);
var
z:integer;
function getk(i, s: integer): integer;
begin
if s=0 then exit;
if s div k[i] > 0 then println(s div k[i], 'куп. по', k[i], 'рублей');
getk(i+1, s-k[i]*(s div k[i]))
end;
begin
writeln('Сколько рублей ходите снять?');
readln(z);
if z mod 50 <> 0 then print('Выдать запрашиваемую сумму невозможно')
else getk(0,z);
end.