Предмет: Информатика, автор: clamsmine

В банкомате имеются в достаточном количестве купюры номиналом 50, 100, 200, 500 и 1000 рублей. Найти минимальное количество купюр, которое необходимо использовать, чтобы выдать сумму в n рублей или вывести -1, если указанную сумму выдать нельзя.

Входные данные. Одно число n (1 ≤ n ≤ 10^6).

Выходные данные. Вывести наименьшее количество купюр, которыми можно выдать n рублей.

(Pascal)

Ответы

Автор ответа: mirageKZ
1

Ответ:

выводится: сколько и каких купюр надо выдать.

если запрашиваемую сумму выдать невозможно - выведется соответствующее сообщение.

Объяснение:

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.

Приложения:
Похожие вопросы
Предмет: Русский язык, автор: dmitriyaliev2дима