рекурсия- расстановка знаков |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
рекурсия- расстановка знаков |
Екатерина7 |
Сообщение
#1
|
Новичок Группа: Пользователи Сообщений: 43 Пол: Женский Репутация: 0 |
помогите, пожалуйста, разобраться с задачей
Для заданного набора целых чисел без знака расставить между ними арифметические знаки сложения, деления, и умножения так, чтобы результат вычисления полученного арифметического выражения был минимальным. Число знаков умножения в этом выражении должно быть равным или на 2 больше, чем знаков сложения, а знаков сложения- равно или на 1 больше, чем знаков деления. В наборе должно быть не менее четырех чисел, а в полученном выражении должны присутствовать все три арифметических знака. (умножение и деление имеют приоритет перед операциями сложения и вычитания, деление производится с остатком) Сообщение отредактировано: Екатерина7 - |
Lapp |
Сообщение
#2
|
Уникум Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
Да. Достаточно было указать на три вызова процедуры Count, которые производятся изнутри самой процедуры. Видишь их? один для +, второй для *, третий для /. Смысл слова "рекурсия" именно в этом и состоит. Как "ре-монт" - это "повторный монтаж", так и "ре-курсия" - это "повторный заход".
Дальше, сам отвечу на свой вопрос. Массив Oper (вместе с OperMin) служит одной-единственной цели: распечатать расставленные знаки в конце. Для самой функциональности, то есть для отыскания нужной комбинации знаков, он не нужен. Это я хотел от тебя услышать. Похоже, что интереса к задаче у тебя так и не появилось. Мне начинает надоедать вытягивать из тебя по слову. Похоже, что мне это нужно больше тебя.. Когда уже в России научатся (и захотят) учиться?.. Лови решение этой задачи. const На TP не проверял, только на FPC. Разбирайся. Спрашивай. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Екатерина7 |
Сообщение
#3
|
Новичок Группа: Пользователи Сообщений: 43 Пол: Женский Репутация: 0 |
спасибо большое!!!
|
Екатерина7 |
Сообщение
#4
|
Новичок Группа: Пользователи Сообщений: 43 Пол: Женский Репутация: 0 |
несовсем пойму, как она выполняется..точнее вообще не пойму.. непонятно, как выражения считаются. проверяю вручную, не получается..
|
Lapp |
Сообщение
#5
|
Уникум Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
несовсем пойму, как она выполняется..точнее вообще не пойму.. Кать, ты меня, наконец, снова радуешь . Кроме шуток. Твои предыдущие слова "я разберусь" - расстраивали, а вот теперь чувствуется, что ты уже не витаешь в облаках и находишь силы это признать Цитата непонятно, как выражения считаются. проверяю вручную, не получается.. Покажи, пожалуйста, твои проверки. Что значит "не получается"? Я, например, вручную просто не смогу в большинстве случаев быть уверенным, что я правильно нашел минимум. Или ты хочешь сказать, что вручную тебе удается найти лучший минимум, чем находит программа? Тогда покажи, плз, такой случай. Как только разберемся с этим, я объясню, какой принцип работы проги. O'kay? -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Екатерина7 |
Сообщение
#6
|
Новичок Группа: Пользователи Сообщений: 43 Пол: Женский Репутация: 0 |
смотри,
например 319155=8+2+1+8*10*10*7/9/4/5 вот этого я не понимаю.. как считает.. должно же в результате получиться это число? 319155? или вот например 46016=1+5+7+5*7*9*1/8/10/8 просто попробовала там посчитать действия и не такой результат.. может я чего-то не допонимаю.. |
Lapp |
Сообщение
#7
|
Уникум Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
Гм.. И мне тоже непонятно. Кать, откуда ты берешь эти равенства?
например 319155=8+2+1+8*10*10*7/9/4/5 ... или вот например 46016=1+5+7+5*7*9*1/8/10/8 Ты что-то изменила в программе? Покажи, пожалуйста, свой текущий вариант проги. У меня, например, при запуске получаются такие: 3 = 1 + 1 / 10 * 9 * 7 * 6 + 2 + 8 / 9 / 3- на этот раз в BP прогонял для пущей уверенности. Что я делаю не так? (С) -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Екатерина7 |
Сообщение
#8
|
Новичок Группа: Пользователи Сообщений: 43 Пол: Женский Репутация: 0 |
хм... все, нашла ошибку! спасибо! вес правильно получается
Добавлено через 3 мин. извиняюсь.. Сообщение отредактировано: Екатерина7 - |
Lapp |
Сообщение
#9
|
Уникум Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
хм... все, нашла ошибку Извини - ошибку в чем? Вроде бы как ошибки-то и не было... ?Так что, уже понятно, как оно работает? не нужно объяснять? -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Екатерина7 |
Сообщение
#10
|
Новичок Группа: Пользователи Сообщений: 43 Пол: Женский Репутация: 0 |
да, ошибка была не у тебя.. все нормально. если не трудно, сможешь объяснить, пожалуйста
Сообщение отредактировано: Екатерина7 - |
Текстовая версия | 27.04.2024 21:42 |