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

kissssss7s8 kissssss7s8    1   22.08.2019 18:50    4

Ответы
mazanamina2017 mazanamina2017  05.10.2020 13:12
Напишу все же с жадным)))

// 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 руб.
ПОКАЗАТЬ ОТВЕТЫ
wavystrong wavystrong  05.10.2020 13:12
На 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)
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика