![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
Димас |
![]() ![]()
Сообщение
#1
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 90 Пол: Мужской Реальное имя: Дима Репутация: ![]() ![]() ![]() |
Общем проблемка такая не могу розобратся в задачках......
наведите меня хоть немного на логику... задачи.... Задача 537 В некоторой стране используются денежные купюры достоинством 1,2,4,8,16,32 и 64. Дано натуральное число n. Как наименьшым количеством таких денежных купюр можно выплатить сумы n,n+1...n+10 ? (Указать количество каждой из используемых для выплаты купюр) Предлогается что имееться достоинство большое количество купбр всех достоинств.... я не могу понять логику задачи и смысл... не говоря уже о паскале, как в матиматике это сделать ![]() обясните как задачу делать ПОЖАЛУЙСТА!!! ![]() З.Ы: мисс_граффити , пардон за тот пост в моей первой теме.... ![]() Сообщение отредактировано: Димас - 26.12.2006 22:00 -------------------- Каждый человек , которого я знаю встречаю, превосходит меня в какой нить области, и я готов у него этому учится:)
|
мисс_граффити |
![]()
Сообщение
#2
|
![]() просто человек ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: ![]() ![]() ![]() |
переводишь n, n+1 ... n+10 в двоичную систему.
допустим, получил 110 - это значит 0 купюр по 1, 1 купюра номиналом 2 и 1 купюра номиналом 4. единственная проблема может возникнуть, если в числе много цифр... то есть перед разрядом веса 64 стоят еще единички. надо будет посчитать, на сколько они потянут, и выплатить это 64-условноединичными купюрами. Или решение в лоб: пока сумма больше 64, вычитаешь из нее 64 (считаешь, сколько раз). После этого: пока сумма больше 32... и т.д. Сообщение отредактировано: мисс_граффити - 26.12.2006 21:42 -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
Димас |
![]() ![]()
Сообщение
#3
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 90 Пол: Мужской Реальное имя: Дима Репутация: ![]() ![]() ![]() |
Я всё равно не пойму
![]() обясните пожалуйста всё по порядку мне как самому что ни на есть чайнику.... а то я ничего не пойму, незнаю как рещить эту задачу ни в матиматике ни в паскале ![]() -------------------- Каждый человек , которого я знаю встречаю, превосходит меня в какой нить области, и я готов у него этому учится:)
|
Malice |
![]()
Сообщение
#4
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 705 Пол: Мужской Репутация: ![]() ![]() ![]() |
Второй вариант:
пока число>64, то {чисел64=чисел64+1, число=число-64 } если число>32, то {чисел32=1, число=число-32 } если число>16, то {чисел16=1, число=число-16 } если число>8, то { чисел8=1, число=число-8 } если число>4, то { чисел4=1, число=число-4 } если число>2, то { чисел2=1, число=число-2 } если число=1, то { чисел1=1} Сделай так. Но первый вариант красивее и короче, хотя при желании он сворачивается в первый, отличие в порядке вывода купюр.. Сообщение отредактировано: Malice - 26.12.2006 22:28 |
Димас |
![]() ![]()
Сообщение
#5
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 90 Пол: Мужской Реальное имя: Дима Репутация: ![]() ![]() ![]() |
Ну вроде что то проясняется:-) но с момим умом приходится читать ваши слова по сто раз и вдумыватся по десять раз......
![]() А как это дело на паскале будет выглядеть,напищите плиз кусочок самого цыкла? ![]() -------------------- Каждый человек , которого я знаю встречаю, превосходит меня в какой нить области, и я готов у него этому учится:)
|
klem4 |
![]()
Сообщение
#6
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
Цитата пока сумма больше 64, вычитаешь из нее 64 Не проще посмотреть сколько раз число делится нацело на 64, а потом вычесть из числа count64 * 64 ? Ну и так далее ... -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
Димас |
![]() ![]()
Сообщение
#7
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 90 Пол: Мужской Реальное имя: Дима Репутация: ![]() ![]() ![]() |
Всё написал и решил эту задачку:-)
воть:
-------------------- Каждый человек , которого я знаю встречаю, превосходит меня в какой нить области, и я готов у него этому учится:)
|
Malice |
![]()
Сообщение
#8
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 705 Пол: Мужской Репутация: ![]() ![]() ![]() |
Красиво, но я бы по 1-му варианту пошел, типа:
var s,x:longint; ![]() |
klem4 |
![]()
Сообщение
#9
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
const Добавлено Malice мне кажется или твоя прога виснет при X = 65 ? -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
Michael_Rybak |
![]()
Сообщение
#10
|
Michael_Rybak ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 1 046 Пол: Мужской Реальное имя: Michael_Rybak Репутация: ![]() ![]() ![]() |
А почему никто не учитывает вот этот кусок:
Цитата выплатить сумы n,n+1...n+10 |
Malice |
![]()
Сообщение
#11
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 705 Пол: Мужской Репутация: ![]() ![]() ![]() |
Malice мне кажется или твоя прога виснет при X = 65 ? Кажется наверное, т.к. там негде.. А почему никто не учитывает вот этот кусок: А как учесть-то ? Так ? uses crt; |
klem4 |
![]()
Сообщение
#12
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
Цитата Кажется наверное, т.к. там негде.. Ну ты попробовал запустить свою программу с x = 65 ? Я вот щас еще раз попробовал а она еще раз зависла =((( вот еще вариант: var Добавлено: ГЫ Не удивительно что она виснет, компилятор то перед циклом s обнулил ![]() ![]() -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
Michael_Rybak |
![]()
Сообщение
#13
|
Michael_Rybak ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 1 046 Пол: Мужской Реальное имя: Michael_Rybak Репутация: ![]() ![]() ![]() |
|
Malice |
![]()
Сообщение
#14
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 705 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата ГЫ Не удивительно что она виснет, компилятор то перед циклом s обнулил ![]() ![]() Выкинь свой компилятор , т.к. именно перед циклом стоит s:=1; и такой вариант: s:=1; while s<64 do s:=s*2; не может повиснуть ни при каких абстоятельствах.. Конечно я сейчас это проверю, (чем черт не шутит), но в 3-х строчках я ошибаюсь _очень_ редко, так сказать, тренирую мозг ручным компилированием ![]() |
klem4 |
![]()
Сообщение
#15
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
Цитата Выкинь свой компилятор , т.к. именно перед циклом стоит s:=1; Ну компилятор тут точно не причем, видимо я разучился копировать текст из браузера...)) -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
hiv |
![]()
Сообщение
#16
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 660 Пол: Мужской Реальное имя: Михаил Репутация: ![]() ![]() ![]() |
![]() ... n := n mod X[i]; -------------------- Никогда не жадничай. Свои проблемы с любовью дари людям!
|
![]() ![]() |
![]() |
Текстовая версия | 23.07.2025 10:27 |