|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
01.12.2016, 11:55 | #11 |
Пользователь
Регистрация: 30.11.2016
Сообщений: 22
|
|
01.12.2016, 12:09 | #12 |
Забанен
Форумчанин Подтвердите свой е-майл
Регистрация: 01.11.2006
Сообщений: 420
|
можно вставлять только +* или *+ так получается?
Если ничто другое не помогает, прочтите, наконец, инструкцию! Аксиома Кана
|
01.12.2016, 12:33 | #13 |
Пользователь
Регистрация: 30.11.2016
Сообщений: 22
|
Между числами нужно вставить 2 знака умножения и все остальное - знаки сложения. Если вы это имели ввиду. Два знака умножить могут идти друг после друга, если в итоге результат будет наибольшим. Т.е например 10*2*3+5+4 имеет место быть, т.к в итоге получим 69.
|
01.12.2016, 13:28 | #14 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
задачу с перебором я решал тут - Арифметические действия с цифрами числа
для больших N (а N=1000 - это достаточно большое количество) полный перебор будет достаточно долгим, но, не в данном случае, в связи с тем, что нужно только позиции умножения перебирать, то это всего 999*998 вариантов, то это вполне приемлемо! есть резон и в подходе ViktorR - найти индексы 4-х максимальных значений и проверить (с учётом граничных значений, конечно!!!) что больше m[max1]*m[max2] ..... + + m[max3]*m[max4] или m[max1-1]*m[max1]*m[max2] + + + или m[max1]*m[max1]*m[max2+1] + + или m[max3-1]*m[max2]*m[max4] + + или m[max3]*m[max4]*m[max4+1] + + это всего 5 вариантов. какой Вам способ нравится больше? но, в любом случае - задачка не очень сложная. я бы написал функцию Calculate(MyArray, indexMultyply1, indexMultyply2) : longint, которая возвращает результат, если знаки умножения стоят в позициях indexMultyply1 и indexMultyply2 соответственно. Надеюсь, это не затруднит? Цитата:
получается 72 -- Последний раз редактировалось Serge_Bliznykov; 01.12.2016 в 13:33. |
|
01.12.2016, 13:52 | #15 |
Забанен
Форумчанин Подтвердите свой е-майл
Регистрация: 01.11.2006
Сообщений: 420
|
Умножение двух отрицательных чисел будет положительно.
Если ничто другое не помогает, прочтите, наконец, инструкцию! Аксиома Кана
|
01.12.2016, 14:02 | #16 |
Пользователь
Регистрация: 30.11.2016
Сообщений: 22
|
Невнимательность))
После написания функции рациональным я так думаю будет сделать так: Код:
|
01.12.2016, 14:29 | #17 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
да, точно.
задача близка к "Дано N-целых чисел.Требуется выбрать из них три таких числа, произведение которых максимально." (на форуме - тыц, тыц, тыц) Цитата:
первое. результат может быть отрицательным. ну, например, расставьте знаки среди чисел: -17 1 1 1 -7 поэтому брать result -1 нельзя. надо maxResult := Calculate(MyArray, 1, 2); ну дальше по мелочи - вычислять Calculate надо в цикле один раз (сохранять во временную переменную), нужно сохранять не только максимальное значение, но и позиции знака умножения, при которых этот максимум был получен, позиций для знаков на одну меньше, чем чисел, поэтому первый цикл по позициям крутить от for i:=1 до n-2 , внутренний цикл крутить от for j:=i+1 to n-1 но в целом, да, согласен, Вы правильно поняли мою мысль. |
|
01.12.2016, 16:21 | #18 |
Пользователь
Регистрация: 30.11.2016
Сообщений: 22
|
|
01.12.2016, 16:45 | #19 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
пожалуйста.
функцию самостоятельно Calculate напишете? сюда готовый код выложите? имхо, неплохо, если в теме останется готовое решение, которое может пригодиться кому-то... |
01.12.2016, 17:24 | #20 |
Пользователь
Регистрация: 30.11.2016
Сообщений: 22
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Задача turbo pascal на тему: файлы с произвольным доступом в Pascal | ExCiTeC | Паскаль, Turbo Pascal, PascalABC.NET | 0 | 28.01.2013 20:36 |
Turbo Pascal задача | Инокентий09 | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 02.06.2012 11:36 |
Задача в Turbo Pascal | Cooltik | Паскаль, Turbo Pascal, PascalABC.NET | 10 | 28.04.2012 19:24 |
Задача на Turbo Pascal | spezzA | Фриланс | 3 | 06.04.2011 23:13 |