![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 04.04.2008
Сообщений: 57
|
![]() ![]() Тут такая задачка хитрая!!! Дана последовательность из N чисел N<=20 расставить знаки (+,-,*,/)между числами так чтобы в результате полечилось число D ![]()
Программированине-это не очередная пара, а искуство показать себя!!!
|
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
МаксимNEWProgramm, учитесь пользоваться поиском.
Здесь на форуме эта задача уже была решена: значение получившегося выражения должно быть равно заданному целому S |
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
Хотя нет, погорячился... там была попроще задачка - только на знаки "+" и "-" ;-(
А тут ещё добавляются умножение и деление... |
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 04.04.2008
Сообщений: 57
|
![]()
Ну что никто не снает? . посоветуйтехотябы учебник ,где может быть инфа или аналагичные ей задачи.Заранее спасибо
Программированине-это не очередная пара, а искуство показать себя!!!
|
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
я стопудово уверен, что у этой задачи есть достаточно красивое решение через рекурсию - типа перебираешь знаки по одному берёшь первое число и вызываешь эту же функцию перебора для оставшихся чисел... Но, честно говоря, красиво думать после тяжёлого трудового дня дураков нет ;-))
Поэтому предлагаю решение простое как топор! 1) берёшь (или пишешь сам) любой парсер (калькулятор) строки - на вход ему два массива - один с числами, второй массив - с математическими операциями, твоя функция должна посчитать выражение, учитываея более высокий приоритет операция умножения/деления.... И вернуть число. 2) написать простейшую программку перебора (насколько я помню комбинаторику, вариантов всего будет 4^(N-1) (четыре в степени N минус 1) ну типа + + ...+ + потом + + ... + - потом + + ... + / потом + + ... + * потом + + ... - + потом + + ... - - и т.д. Если вычиление на каком-то этапе вернуло число, равное В - выход. Если перебрали все варианты - то сообщение "Решения задачи нет". |
![]() |
![]() |
![]() |
#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 |