![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 13.10.2010
Сообщений: 91
|
![]()
Доброго времени суток всем! нужно написать программу на Delphi(других не знаем) которая бы разменивала некоторую сумму денег наименьшим числом купюр. Для реализации должен быть применен жадный алгоритм.
Например. имеются купюры номиналами:1руб 5руб 10 руб 50 руб 100 руб 500 руб 1000 руб 5000 руб. нужно разменять сумму например 5190руб. Программа должна выдать:сумму 5190 можно разменять 5000+100+50+10+10+10+10(ну я так себе это представляю) В программировании я только на самом начале , поэтому даже не знаю как подступиться. Объясните пожалуйста как вообще можно это сделать. Если не сложно накидайте программу или жадный алгоритм напишите а то курсовую уже скоро сдавать))) Заранее всем благодарен! |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
у меня всегда были проблемы с динамическим программированием. НО. Т.к. число купюр каждого достоинства у Вас не ограничего, то задача решается элементарно!
помещаем все купюры в массив по уменьшению их стоимости. Пусть надо получить число X Код:
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 13.10.2010
Сообщений: 91
|
![]()
ничего не понял) можно все прямо с объявления массива и переменных и вывод результата?( чисто код) да и зачем эта строчка:
if i>РазмераМассиваСДостоинстомКупюр тогда begin Сообщение: Ошибка! Сумма не может быть получена, исходя из данного набора достоинств купюр! выход! end прога всегда должна разменивать т.к. сумма всегда будет целым числом |
![]() |
![]() |
![]() |
#4 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]() Цитата:
А вот если выкинуть из набора, например, 1 рублёвые купюры, и всё. То, что сумма целое число - может и не помочь! Ладно. не хотите делать проверку - не делайте. Проще код кинуть, чем разжёвывать. я и так, словами алгоритм описывал раза в три дольше, чем написал бы код. Не хотите разбираться и писать код самостоятельно - не надо. Вот решение: Код:
|
|
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 13.10.2010
Сообщений: 91
|
![]()
Спасибо вам огромное!
Когда написали код, то сразу же все стало ясно=) А то я маленько запутался в вашем алгоритме. Я просто еще не умею программировать и в алгоритмах плохо разбираюсь, а в техникуме особо не напрягаются нас учить и что-то объяснять... Вот и приходиться самим во всем разбираться. А вы уже профессионал и для вас это разминка) Еще раз большое спасибо за то что не проигнорировали и помогли. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Delphi(1й курс) Жадный алгоритм | Archetype | Помощь студентам | 8 | 17.05.2010 19:49 |
Жадный алгоритм и перебор | mailjaffka | Помощь студентам | 10 | 17.05.2010 16:20 |
Объясните алгоритм.(For)Простая задача | BackSlash | Общие вопросы C/C++ | 3 | 16.12.2009 00:02 |
Помошите найти не жадный DOA 4.0.7, для Delphi 6.0 | Lis | БД в Delphi | 0 | 06.11.2007 15:09 |