Форум программистов, компьютерный форум CyberForum.ru

Рекурсивно вычислить произведение отрицательных элементов массива - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 41, средняя оценка - 5.00
ARTLINE-NN
 Аватар для ARTLINE-NN
1 / 1 / 0
Регистрация: 30.03.2012
Сообщений: 82
31.03.2012, 15:36     Рекурсивно вычислить произведение отрицательных элементов массива #1
Написать рекурсивную функцию возвращающую произведение отрицательных элементов массива
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.03.2012, 15:36     Рекурсивно вычислить произведение отрицательных элементов массива
Посмотрите здесь:

C++ Вычислить произведение отрицательных элементов массива
Вычислить произведение отрицательных элементов массива C++
C++ Работа с одномерными массивами (вычислить произведение отрицательных элементов массива.)
Вычислить произведение отрицательных элементов массива C++
C++ Вычислить произведение отрицательных элементов массива
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Dani
1263 / 621 / 50
Регистрация: 11.08.2011
Сообщений: 2,236
Записей в блоге: 2
Завершенные тесты: 1
31.03.2012, 18:28     Рекурсивно вычислить произведение отрицательных элементов массива #21
да хоть на калькуляторе умножить

Добавлено через 2 минуты
http://www.google.by/search?ie=UTF-8&hl=ru&q=0*0
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nameless One
Эксперт С++
 Аватар для Nameless One
5753 / 3402 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
31.03.2012, 18:33     Рекурсивно вычислить произведение отрицательных элементов массива #22
Цитата Сообщение от Dani Посмотреть сообщение
Просто из вопроса логики
ничто повторенное нисколько раз будет ничто, а не что-то
Ну да, согласен, http://www.cyberforum.ru/cgi-bin/latex.cgi?a \cdot 0 = 0http://www.cyberforum.ru/cgi-bin/latex.cgi?a для этого даже не обязательно быть «ничем», оно может быть _любым_ числом). Но, в очередной раз повторюсь, как это связано с перемножением нуля элементов? Я уже задавал тебе этот вопрос:

Цитата Сообщение от Nameless One Посмотреть сообщение
вот что я не понял, так это то, как связано умножение _на_ ноль с умножением нуля множителей. Может ты объяснишь?
Добавлено через 1 минуту
Цитата Сообщение от Dani Посмотреть сообщение
да хоть на калькуляторе умножить
да ты издеваешься что ли? Откуда ты взял вообще умножение на ноль? Еще раз повторю, мы говорим про перемножение нуля элементов, т.е. там вообще никаких чисел нет, ни нуля, ни положительных, ни отрицительных

Добавлено через 1 минуту
Цитата Сообщение от go Посмотреть сообщение
Следует решать задачи в общем случае
согласен

Цитата Сообщение от go Посмотреть сообщение
т.е. использовать признак отсутствия отрицательных элементов
где и кем это сказано?

И да, про общий случай ты неправильно понял. Произведение отрицательных чисел — это как раз-таки частный случай
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
31.03.2012, 18:34     Рекурсивно вычислить произведение отрицательных элементов массива #23
Пример из школы, уверен, его всем объясняли. Любое число в нулевой степени - 1.
Dani
1263 / 621 / 50
Регистрация: 11.08.2011
Сообщений: 2,236
Записей в блоге: 2
Завершенные тесты: 1
31.03.2012, 18:35     Рекурсивно вычислить произведение отрицательных элементов массива #24
При умножении начальное 1 ставят тогда, когда необходимо, чтобы результат не изменился. Но, т.к. умножение не происходит начальное значение не меняется, следовательно его надо поменять вручную.

Добавлено через 1 минуту
soon, так то степень
Nameless One
Эксперт С++
 Аватар для Nameless One
5753 / 3402 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
31.03.2012, 18:35     Рекурсивно вычислить произведение отрицательных элементов массива #25
Цитата Сообщение от Dani Посмотреть сообщение
При умножении начальное 1 ставят тогда, когда необходимо, чтобы результат не изменился. Но, т.к. умножение не происходит начальное значение не меняется, следовательно его надо поменять вручную.
что, прошу прощения?
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
31.03.2012, 18:36     Рекурсивно вычислить произведение отрицательных элементов массива #26
soon, так то степень
...показывает количество перемножаемых элементов.
DoZZer_
11 / 11 / 1
Регистрация: 09.08.2011
Сообщений: 53
31.03.2012, 18:37     Рекурсивно вычислить произведение отрицательных элементов массива #27
Dani, приведение к 0 - это далеко не общепринятое решение, да и в задании его нет. Каждый пишет как хочет, какие проблемы?
Самый оптимальный вариант - выводить сообщение, если значений нет, и все..
Nameless One
Эксперт С++
 Аватар для Nameless One
5753 / 3402 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
31.03.2012, 18:38     Рекурсивно вычислить произведение отрицательных элементов массива #28
Цитата Сообщение от Dani Посмотреть сообщение
soon, так то степень
Степень — это частный случай того, о чем мы вообще-то говорим (т.е. все перемножаемые элементы равны):
http://www.cyberforum.ru/cgi-bin/latex.cgi?x^n = \prod \limits_{i = 1}^{n} x<br />
x^0 = 1
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
31.03.2012, 18:42     Рекурсивно вычислить произведение отрицательных элементов массива #29
Цитата Сообщение от DoZZer_ Посмотреть сообщение
Самый оптимальный вариант - выводить сообщение, если значений нет, и все..
Так он об этом и говорит. Если элементов нет, то функция вернет ноль(признак отсутствия: с массиве ноль отрицательных элементов). Вот и его нужно проверять.
Dani
1263 / 621 / 50
Регистрация: 11.08.2011
Сообщений: 2,236
Записей в блоге: 2
Завершенные тесты: 1
31.03.2012, 18:44     Рекурсивно вычислить произведение отрицательных элементов массива #30
Nameless One, В самом начале 1 ставят для того, чтобы при умножении на первый множитель РЕЗУЛЬТАТ он не изменил:
1(результат)*8 = 8, 0(а если 0 результат, то)*8 - уже не то.

Но на самом деле в начале результат 0, просто прописан для начала как 1.
Nameless One
Эксперт С++
 Аватар для Nameless One
5753 / 3402 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
31.03.2012, 18:44     Рекурсивно вычислить произведение отрицательных элементов массива #31
go, еще раз поясню, что я имел в виду под общим случаем: допустим, у тебя есть последовательность произвольных элементов. Какое число нужно возвращать при суммировании (или перемножении, не суть важно), чтобы сигнализировать о том, что эта последовательность пустая?
Dani
1263 / 621 / 50
Регистрация: 11.08.2011
Сообщений: 2,236
Записей в блоге: 2
Завершенные тесты: 1
31.03.2012, 18:47     Рекурсивно вычислить произведение отрицательных элементов массива #32
ну не как не 1
Nameless One
Эксперт С++
 Аватар для Nameless One
5753 / 3402 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
31.03.2012, 18:48     Рекурсивно вычислить произведение отрицательных элементов массива #33
Dani, ты видно совсем не в теме. Может, все-таки ответишь на вопрос?

Цитата Сообщение от Nameless One Посмотреть сообщение
вот что я не понял, так это то, как связано умножение _на_ ноль с умножением нуля множителей. Может ты объяснишь?
При перемножении пустой последовательности нуля вообще нигде нет (там и умножения-то по сути нет)!
Dani
1263 / 621 / 50
Регистрация: 11.08.2011
Сообщений: 2,236
Записей в блоге: 2
Завершенные тесты: 1
31.03.2012, 18:48     Рекурсивно вычислить произведение отрицательных элементов массива #34
когда find ничего не находит, он возвращает npos. А там или 0 или очень большое число, 2в степени
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
31.03.2012, 18:49     Рекурсивно вычислить произведение отрицательных элементов массива #35
Nameless One, давайте будем объективны. Не хочу не с кем спорить, но если Вы можете написать более универсальную функцию, то ее нужно и писать. В данном случае, я могу сказать о своей функции:
  • Вернет 0, если в массиве отсутствуют отрицательные элементы.
  • Иначе вернет их произведение.
Nameless One
Эксперт С++
 Аватар для Nameless One
5753 / 3402 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
31.03.2012, 18:51     Рекурсивно вычислить произведение отрицательных элементов массива #36
Цитата Сообщение от Dani Посмотреть сообщение
ну не как не 1
ну а какое тогда? И уточни, ты про суммирование или про умножение говоришь?

Цитата Сообщение от Dani Посмотреть сообщение
когда find ничего не находит, он возвращает npos. А там или 0 или очень большое число, 2в степени
при чем здесь find, а? Он у тебя уже суммировать или перемножать научился?

Добавлено через 1 минуту
go, и в чем же она «более универсальна»? И что ты в данном случае понимаешь под универсальностью?
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
31.03.2012, 18:52     Рекурсивно вычислить произведение отрицательных элементов массива #37
Nameless One, у Вас же вернет единицу, и мы будем гадать, это отсутствие отрицательных элементов, или произведение четного числа минус единиц.
Dani
1263 / 621 / 50
Регистрация: 11.08.2011
Сообщений: 2,236
Записей в блоге: 2
Завершенные тесты: 1
31.03.2012, 18:52     Рекурсивно вычислить произведение отрицательных элементов массива #38
когда строка пустая, например,(пустое множество символов) он не найдет ничего (как не находит твоя функция произведение). В этом случае он вернет npos. npos на разных компиляторах разный, так и у вас результат, если чисел нет разный.
Nameless One
Эксперт С++
 Аватар для Nameless One
5753 / 3402 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
31.03.2012, 19:00     Рекурсивно вычислить произведение отрицательных элементов массива #39
Цитата Сообщение от go Посмотреть сообщение
Nameless One, у Вас же вернет единицу, и мы будем гадать, это отсутствие отрицательных элементов, или произведение четного числа минус единиц.
у меня он вернет единицу, и это будет правильно с точки зрения определения произведения чисел. А у тебя вернет ноль, и, возможно, сломает код тех людей, которые на это определение полагались, ведь в задании про это ничего не сказано.

Цитата Сообщение от Dani Посмотреть сообщение
когда строка пустая, например,(пустое множество символов) он не найдет ничего (как не находит твоя функция произведение)
какая строка, при чем здесь поиск (для справки, я знаю, как работает функция find и в чем смысл значения std::string::npos)?
Цитата Сообщение от Dani Посмотреть сообщение
npos на разных компиляторах разный, так и у вас результат, если чисел нет разный.
и для действительных чисел тоже npos, ага?

Почему бы просто не выбросить в таком случае исключение, если нас так заботит случай с пустой последовательностью?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.03.2012, 19:01     Рекурсивно вычислить произведение отрицательных элементов массива
Еще ссылки по теме:

C++ Вычислить произведение отрицательных элементов массива
Вычислить произведение отрицательных элементов массива C++
C++ Вычислить произведение первого элемента массива на количества отрицательных элементов

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9371 / 5421 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
31.03.2012, 19:01     Рекурсивно вычислить произведение отрицательных элементов массива #40
Цитата Сообщение от Nekto Посмотреть сообщение
Мне кажется, что особый случай надо просто отдельно описать и выводить сообщение об этом
Вот это по-моему самое правильное решение.
Yandex
Объявления
31.03.2012, 19:01     Рекурсивно вычислить произведение отрицательных элементов массива
Закрытая тема Создать тему
Опции темы

Текущее время: 14:04. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru