|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
11.06.2007, 12:25 | #1 |
Регистрация: 10.06.2007
Сообщений: 5
|
Задача на сумму к оплате.
Помогите пожалуйста, срочно нужно досдать задачу, а я не понимаю как ее писать, в алгоритм никак не въеду=\
С терминала вводится число n. Считая, что введенное число-сумма, подлежащая оплате, напечатать все варианты ее оплаты в банкнотах и монетах, имеющихся на данный момент в обороте. Найти способ, требующий наименьшего количества банкнот и монет. В задаче нужно использовать рекурсию, номиналы банкнот и монет беруться из файла или вводятся как константы, можно присваивать их внутри программы, это несущественно. Если кто то может-помогите, нужно позарез просто=\ |
11.06.2007, 17:44 | #2 |
php / delphi
Форумчанин
Регистрация: 10.06.2007
Сообщений: 175
|
По секрету (из тервера) расскажу, что если N-ом обзовем количество уникальных денюжек (купюр или монетов), то всего вариантов, которыми можно набрать требуемую сумму (максимальное их количество):
Все варианты не стал перебирать - это не сложно. В моей реализации: M( N=11 )=2047 вариантов. А потому алгоритм следующий: 1) Лучший вариант – в котором наименьшее количество банкнот и монет). 2) Если номиналы выразить в рублях, то монета определяется из условия: n<10 3) Сразу сообразим: если получится удачная комбинация из Z<N денюжек, то рассматривать комбинации Z+1 не имеет смысла по определению, потому будем сначала набирать сумму максимальными денюжками (рекурсией). 4) Кстати, кто не знаком с особенностями машинной арифметики: в проге в переменной s накапливается после нескольких итераций ошибки округления. Пошагово можете посмотреть, кому интересно. В первую очередь подозрения ложатся на криворукость Борланда в фунции trunc. Поэтому условие: s<>0 пришлось заменить на |s|>0.001; Код:
G.Azamat { Web Development / Computer simulation }
Начинающий программист думает, что в килобайте 1000 байтов, а законченный уверен, что в километре 1024 метра. Последний раз редактировалось InternetStranger; 11.06.2007 в 17:50. |
11.06.2007, 18:42 | #3 |
Регистрация: 10.06.2007
Сообщений: 5
|
Спс) Но..файл исходника поврежден, и открываться отказывается=\ и если честно, не совсем понятны значения команд memo1.clear , strtofloat(edit1.text) , memo1.lines.add , inttostr...Поясните плиз)))
Последний раз редактировалось caterva; 11.06.2007 в 18:46. |
11.06.2007, 21:28 | #4 |
ObjectPascal,CISCO
Форумчанин
Регистрация: 22.05.2007
Сообщений: 294
|
Delphi это..
|
11.06.2007, 21:36 | #5 |
Регистрация: 10.06.2007
Сообщений: 5
|
...нда..теперь ясно) просто мне задача на паскале нужна, да и сама я только паскаль и с++ знаю)) а..нельзя то же самое в паскаль перевести?
|
11.06.2007, 23:00 | #6 |
php / delphi
Форумчанин
Регистрация: 10.06.2007
Сообщений: 175
|
можно и на паскале. че-то я забыл про название раздела.
качай
G.Azamat { Web Development / Computer simulation }
Начинающий программист думает, что в килобайте 1000 байтов, а законченный уверен, что в километре 1024 метра. |
11.06.2007, 23:48 | #7 |
Регистрация: 10.06.2007
Сообщений: 5
|
хм..я так понимаю, эта программа выводит только максимальное количество купюр и монет, из которого можно собрать заданную сумму. А как вывести все возможные варианты?
|
12.06.2007, 13:02 | #8 |
Регистрация: 10.06.2007
Сообщений: 5
|
ну в общем, спс огромное, я ее сама решила) там он ме правда ошибку выводит хз почему, но , думаю, разберусь. Спс за помощь+)
|
12.06.2007, 14:12 | #9 |
php / delphi
Форумчанин
Регистрация: 10.06.2007
Сообщений: 175
|
Вот и прелесть, здрава будь) можешь даже код сюда вывесить. так на всякий случай
G.Azamat { Web Development / Computer simulation }
Начинающий программист думает, что в килобайте 1000 байтов, а законченный уверен, что в километре 1024 метра. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
показать кол-во и сумму приходов | Romuald | Microsoft Office Excel | 10 | 02.09.2008 14:17 |
впочему не выводит сумму???? | макс07 | Общие вопросы C/C++ | 2 | 15.05.2008 20:25 |
Подсчитать сумму! | Deman4eg | Microsoft Office Excel | 2 | 02.04.2008 09:16 |
#Delphi задача на сумму цифр числа | forumu | Помощь студентам | 11 | 12.01.2008 19:02 |
Задача по оплате | BedDog | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 23.05.2007 06:42 |