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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.05.2011, 13:43   #1
Sauruk
 
Регистрация: 06.05.2011
Сообщений: 5
По умолчанию Наименьшее кол-во купюр для размена С++

Товар стоит N рублей (N- натуральное число). Покупатель и кассир имеют неограниченное кол-во монет (купюр) различного достоинства (1,2,5,10,20,50,100,200,500,1000,50 00,10000,50000,100000 рублей). Предложить варианты расчета в которых используется минимальное кол-во монет (купюр).


Помогите с разработать алгоритм)
Оригинальный текст задания в приложении
Изображения
Тип файла: jpg dbffa0d4e310.jpg (79.6 Кб, 140 просмотров)
Sauruk вне форума Ответить с цитированием
Старый 06.05.2011, 14:44   #2
Biggs
Пользователь
 
Регистрация: 15.07.2010
Сообщений: 74
По умолчанию

Используй Mod=% и целочисленное деление- делишь N на крупнейшую купюру , получаешь количество самых крупных купюр в N , потом остаток делишь на следующий по величине номинал и так до конца
Biggs вне форума Ответить с цитированием
Старый 06.05.2011, 18:55   #3
Sauruk
 
Регистрация: 06.05.2011
Сообщений: 5
По умолчанию

Этим способом я лишь подсчитаю каким набором купюр можно получить N

Моя же задача найти 1 или несколько вариантов размена с использованием МИНИМАЛЬНОГО количества купюр
Sauruk вне форума Ответить с цитированием
Старый 06.05.2011, 19:12   #4
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,577
По умолчанию

могу помочь за материальное вознаграждение
ICQ 395-546-218
rrrFer вне форума Ответить с цитированием
Старый 06.05.2011, 19:20   #5
Biggs
Пользователь
 
Регистрация: 15.07.2010
Сообщений: 74
По умолчанию

Sauruk. нет
Минимальным будет число при котором будет максимальное количество крупных купюр-так работает алгоритм
Biggs вне форума Ответить с цитированием
Старый 06.05.2011, 19:36   #6
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,577
По умолчанию

Biggs
у вас что-то работает? предлагаю сначала проверить свой алгоритм, потом советовать. Контрпример:
N = 600
купюры: 2, 200,500

очевидно, что самым оптимальным будет взять 3 купюры по 200.
по алгоритму который предлагаете вы, мы сначала берем 1 купюру номиналом 500, остается 100 => набираем 50 купюр номиналом 2.

Не надо советовать что попало
rrrFer вне форума Ответить с цитированием
Старый 06.05.2011, 19:43   #7
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

http://www.integr.org/olimp/3-1-1.htm
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 06.05.2011, 21:00   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Mad_Cat, ссылочка отличная.

Только попрошу всех заинтересовавшихся обратить внимание на один ОЧЕНЬ важный факт. В данном случае учитываются купюры УЧАСТВУЮЩИЕ в обмене с двух сторон.
на рисунке хорошо видно, что, например, для N=9000 рублей понадобится всего ДВЕ купюры: 10000 и 1000
Покупатель даёт 10000 и ему дают сдачу 1000.
записывается это 9000 = 10000 - 1000

p.s. а толковый алгоритм решения я пока не вижу...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 06.05.2011, 21:19   #9
Biggs
Пользователь
 
Регистрация: 15.07.2010
Сообщений: 74
Радость

Цитата:
Сообщение от rrrFer Посмотреть сообщение
Biggs
у вас что-то работает? предлагаю сначала проверить свой алгоритм, потом советовать. Контрпример:
N = 600
купюры: 2, 200,500

очевидно, что самым оптимальным будет взять 3 купюры по 200.
по алгоритму который предлагаете вы, мы сначала берем 1 купюру номиналом 500, остается 100 => набираем 50 купюр номиналом 2.

Не надо советовать что попало
Добавьте купюру в 100 и все получится
Но ,наверное , вы правы -надо все варианты считать
Biggs вне форума Ответить с цитированием
Старый 06.05.2011, 21:39   #10
Sauruk
 
Регистрация: 06.05.2011
Сообщений: 5
По умолчанию

Цитата:
Сообщение от Mad_Cat Посмотреть сообщение
Спасибо за ссылку. Попробую завтра на свежую голову адаптировать код под свою задачу
Sauruk вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа для подсчета полного и эффективного кол-ва информации wandering Помощь студентам 5 04.04.2010 19:56
макрос - подсчитать для каждой строки кол-во ячеек с «+», кол-во ячеек с «-» Vadim_abs Microsoft Office Excel 36 14.07.2009 12:08
Найти кол-во целых чисел в первой последовательности и кол-во нечетных во второй. DjDeniels-61 Помощь студентам 7 28.06.2009 13:04
Для вещественного массива А(20)вычислить наибольшее и наименьшее значения модуля раз-ти между сосед.эл-ми faix Помощь студентам 2 14.11.2007 13:25