Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.02.2020, 15:10   #1
Torrich
 
Регистрация: 22.09.2019
Сообщений: 8
По умолчанию размен монет - если в кассе есть купюры 10 руб, 100 руб, 50 руб, 1 руб. Нужно вывести все возможные способы размена

Имеется n рублей. Требуется разменять данную сумму, если в кассе есть купюры 10 руб, 100 руб, 50 руб, 1 руб. Нужно вывести все возможные способы размена
Torrich вне форума Ответить с цитированием
Старый 17.02.2020, 15:19   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,515
По умолчанию

Код:
n по 1 р.
n-10, 1 по 10, ...
...
оформляем в цикл(-ы) и ...
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 17.02.2020, 15:22   #3
Torrich
 
Регистрация: 22.09.2019
Сообщений: 8
По умолчанию

можно пожалуйста подробнее
Torrich вне форума Ответить с цитированием
Старый 17.02.2020, 16:18   #4
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,515
По умолчанию

как бы решал данную задачу руками?
я бы ПРИДУМАЛ алгоритм (порядок записи) возможных вариантов.
к примеру.
начать с мнимально возможных
Цитата:
n по 1 р.
постепенно добавлять более крупные (заменять мелочь)
Цитата:
n-10, 1 по 10, ...
и повторять, повторять, ...
Цитата:
оформляем в цикл(-ы) и ...
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 17.02.2020, 16:27   #5
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,536
По умолчанию

На Паскале лень ковыряться, сделал в Делфи, всё 1:1, только ввод-вывод перекинуть.
Если не включать бошку, то где-то так:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var i100,n100,i50,n50,i10,n10,n1,N,s100,s50,s10,s,j: integer ;
stro: string ;
begin
N := StrToInt (Edit1.Text) ;
j := 0 ;
n100:= N div 100 ;
n50 := N div 50 ;
n10 := N div 10 ;
for i100 := 0 to n100 do
  begin
    s100 := i100 * 100 ;
    for i50 := 0 to n50 do
      begin
        s50 := i50 * 50 ;
        s := s100 + s50 ;
        if s > N then Break ;
        for i10 := 0 to n10 do
           begin
             s10 := i10 * 10 ;
             s := s100 + s50 + s10 ;
             if s > N then Break ;
             Inc (j) ;
             n1 := N - s ;
             Memo1.Lines.Add( Format
               ('%3d -> %5d %5d %5d %5d',[j,i100,i50,i10,n1] ))
           end ;
      end ;
  end ;
end ;

Последний раз редактировалось digitalis; 17.02.2020 в 16:57.
digitalis вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[РЕШЕНО][C++] Вывести 100 первых натуральных чисел в столбик, если число делится нацело на 3 вывести вместо него fizz, если нацело на 5 — вывести bizz, если на 3 и на 5 — fizzbizz bylbyl9tor Помощь студентам 22 07.03.2019 21:37
есть неограниченное количество монет заданного номинала.Программа для размена заданной суммы наименьшим количеством монет (Паскаль xrystynka171 Помощь студентам 9 14.12.2013 14:50
Размен монет на С++ BvaKell Помощь студентам 8 06.06.2013 15:56
Все возможные способы создать чат gufon Работа с сетью в Delphi 3 10.06.2011 21:32
есть ячейки А, В, С. в ячейку С нужно вывести резултат С=А*В*0,1% А^ександр Microsoft Office Excel 1 18.02.2008 11:12