Составить программу решающую следующую задачу:Вы покупаете товар,и у вас имеются купюры...

0 голосов
39 просмотров

Составить программу решающую следующую задачу:Вы покупаете товар,и у вас имеются купюры номиналом 10,50,100,1000 рублей.Наберите необходимую сумму товара в N рублей так,чтобы она состояла из минимального количества купюр


Информатика (57 баллов) | 39 просмотров
Дано ответов: 2
0 голосов
Правильный ответ

На Python 2.X:

# coding: utf-8

notes = (10, 50, 100, 1000)

def in_notes(notes, num):
    d = {}
    m = num
    for note in sorted(notes, reverse=True):
        d[note], m = divmod(m, note)
    return d

n = input("Введите сумму: ")
print "В купюрах:"
for note, count in sorted(in_notes(notes, n).iteritems()):
    if count == 0:
        continue
    print "{}: x{}".format(note, count)

(7.2k баллов)
0 голосов

Напишу все же с жадным)))

// PascalABC.NET 3.2, сборка 1383 от 09.02.2017
// Внимание! Если программа не работает, обновите версию!

begin
  var k:=Arr(1000,100,50,10); // массив с достоинствами купюр
  var s:=ReadInteger('Введите сумму:'); // сумма к оплате
  Writeln('Уплатить:');
  var i:=0;
  while s>0 do begin
    var p:=s div k[i];
    if p>0 then Writeln(p,' шт. достоинством ',k[i],' руб.');
    s:=s mod k[i]; i+=1
    end;
end.

Пример
Введите сумму: 1630
Уплатить:
1 шт. достоинством 1000 руб.
6 шт. достоинством 100 руб.
3 шт. достоинством 10 руб.

(150k баллов)