|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
12.04.2008, 19:23 | #1 |
Пользователь
Регистрация: 04.04.2008
Сообщений: 57
|
(+,-,*,/)Расстановка знаков
Привет всем!!!!
Тут такая задачка хитрая!!! Дана последовательность из N чисел N<=20 расставить знаки (+,-,*,/)между числами так чтобы в результате полечилось число D
Программированине-это не очередная пара, а искуство показать себя!!!
|
13.04.2008, 10:04 | #2 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
МаксимNEWProgramm, учитесь пользоваться поиском.
Здесь на форуме эта задача уже была решена: значение получившегося выражения должно быть равно заданному целому S |
13.04.2008, 10:07 | #3 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Хотя нет, погорячился... там была попроще задачка - только на знаки "+" и "-" ;-(
А тут ещё добавляются умножение и деление... |
16.04.2008, 19:33 | #4 |
Пользователь
Регистрация: 04.04.2008
Сообщений: 57
|
Ну что никто не снает? . посоветуйтехотябы учебник ,где может быть инфа или аналагичные ей задачи.Заранее спасибо
Программированине-это не очередная пара, а искуство показать себя!!!
|
16.04.2008, 22:08 | #5 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
я стопудово уверен, что у этой задачи есть достаточно красивое решение через рекурсию - типа перебираешь знаки по одному берёшь первое число и вызываешь эту же функцию перебора для оставшихся чисел... Но, честно говоря, красиво думать после тяжёлого трудового дня дураков нет ;-))
Поэтому предлагаю решение простое как топор! 1) берёшь (или пишешь сам) любой парсер (калькулятор) строки - на вход ему два массива - один с числами, второй массив - с математическими операциями, твоя функция должна посчитать выражение, учитываея более высокий приоритет операция умножения/деления.... И вернуть число. 2) написать простейшую программку перебора (насколько я помню комбинаторику, вариантов всего будет 4^(N-1) (четыре в степени N минус 1) ну типа + + ...+ + потом + + ... + - потом + + ... + / потом + + ... + * потом + + ... - + потом + + ... - - и т.д. Если вычиление на каком-то этапе вернуло число, равное В - выход. Если перебрали все варианты - то сообщение "Решения задачи нет". |
17.04.2008, 17:04 | #6 |
Пользователь
Регистрация: 04.04.2008
Сообщений: 57
|
Спасибо !
Код сам напишу.
Программированине-это не очередная пара, а искуство показать себя!!!
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
удаление не нужных знаков после запятой. | Alar | Общие вопросы Delphi | 4 | 31.05.2012 19:59 |
кол-во знаков после запятой в TEdit | Petrucci | Общие вопросы Delphi | 9 | 04.07.2008 13:15 |
Определить число Y знаков в факториале от X | KnDmPetr | Паскаль, Turbo Pascal, PascalABC.NET | 8 | 24.03.2008 17:10 |
Подсчет знаков | Dizman | Помощь студентам | 4 | 31.01.2008 22:27 |
Ограничение знаков после запятой,StringGrid | Gorin | Компоненты Delphi | 9 | 20.09.2007 16:10 |