IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Записать выражение.
reill
сообщение 16.04.2003 10:19
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 52

Репутация: -  0  +


Записать выражение :
1 операция 2 операция 3 операция 4 операция 5 операция 6 операция 7 операция 8 операция 9 операция =100, т.е. цифры, от 1 до 9 соединить арифметическими операциями +,-,*,/ так, чтобы результат получился равным 100.Есть восемь вариантов такой записи, например, 1*2+3*4*5-6+7+8-9=100.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
___ALex___
сообщение 30.04.2003 15:54
Сообщение #2


Бывалый
***

Группа: Пользователи
Сообщений: 282

Репутация: -  0  +


to reill
Итак начнём!Много писать не хочется, но посмотрим как уж выйдет в конце.
Когда я увидел условие этой задачи я подумал что тут что-то с рекурсией замешано...
Но решил эту задачу итерационно. В рекурсии тут не вижу смысла - медленней будет так как
каждое промежуточное состояние(значение локальных переменных подпрограммы)
как известно сохраняется в стеке(при "погружении в глубь")
потом восстанавливается(при "всплытии")
Так ближе к делу:
сама идея решения естественна - обычный перебор.
Вот как это делается:
в основной проге - всё примитивно - там идёт перебор всех комбинаций
типа "++++++++", "+++++++-", "+++++++*", "+++++++/", "++++++-+", "++++++--" и тд
всего 65536 таких вариантов!
(из них только 15 будут равны сотне!)
(Это же 64K!Размер сегмента в реальном режиме работы проца...чистое совпадение)
вот идёт перебор и соответственно нужно иметь подпрограммку вычисляющую значение
таких комбинаций, то есть "+-*+-*/*" есть 1+2-3*4+5-6*7/8*9 = -17,5
это делает функция Calc, то есть Calc('+-*+-*/*') = -17,5
(Реализацию Calc не знаю даже как описывать...очень долго получится...возможно ты напишешь
свою реализацию такой подпрограммки - главно что общая идея решения уже должна быть ясна)
"if Calc(S) = 100 then WriteLn(S);"
и если значение комбинации равно сотне - выводим эту комбинацию на консоль
Вот в общем и всё!
P.S. Спрашивай если захочешь ещё что-нибудь узнать
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
reill   Записать выражение.   16.04.2003 10:19
reill   Re: Записать выражение( помогите сделать лабу)!!!!   19.04.2003 11:37
___ALex___   Re: Записать выражение( помогите сделать лабу)!!!!   20.04.2003 16:46
GLuk   Re: Записать выражение( помогите сделать лабу)!!!!   20.04.2003 16:50
trminator   Re: Записать выражение( помогите сделать лабу)!!!!   20.04.2003 17:09
___ALex___   Re: Записать выражение( помогите сделать лабу)!!!!   20.04.2003 19:12
___ALex___   Re: Записать выражение( помогите сделать лабу)!!!!   20.04.2003 19:34
___ALex___   Re: Записать выражение( помогите сделать лабу)!!!!   20.04.2003 19:55
reill   Re: Записать выражение( помогите сделать лабу)!!!!   21.04.2003 10:48
___ALex___   Re: Записать выражение( помогите сделать лабу)!!!!   21.04.2003 16:45
___ALex___   Re: Записать выражение( помогите сделать лабу)!!!!   21.04.2003 17:17
AlaRic   Re: Записать выражение( помогите сделать лабу)!!!!   21.04.2003 17:25
Slam   Re: Записать выражение( помогите сделать лабу)!!!!   21.04.2003 17:47
reill   Re: Записать выражение( помогите сделать лабу)!!!!   21.04.2003 20:27
___ALex___   Re: Записать выражение( помогите сделать лабу)!!!!   21.04.2003 21:12
___ALex___   Re: Записать выражение.   22.04.2003 11:59
Slam   Re: Записать выражение( помогите сделать лабу)!!!!   22.04.2003 18:53
___ALex___   Re: Записать выражение( помогите сделать лабу)!!!!   22.04.2003 19:15
reill   Re: Записать выражение( помогите сделать лабу)!!!!   29.04.2003 13:53
AlaRic   Re: Записать выражение( помогите сделать лабу)!!!!   29.04.2003 18:35
___ALex___   Re: Записать выражение( помогите сделать лабу)!!!!   29.04.2003 20:40
reill   Re: Записать выражение( помогите сделать лабу)!!!!   30.04.2003 4:33
___ALex___   Re: Записать выражение( помогите сделать лабу)!!!!   30.04.2003 15:54


 Ответить  Открыть новую тему 
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 30.07.2025 19:27
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"