1 / 1 / 0
Регистрация: 21.10.2019
Сообщений: 42
|
||||||
1 | ||||||
Найти максимальную сумму подряд идущих элементов22.11.2019, 13:44. Показов 10756. Ответов 5
Метки нет (Все метки)
Всем привет.
Задание. Вводится массив целых чисел. Найти максимальную сумму подряд идущих элементов. Примечание: существует алгоритм, как можно получить такую сумму в один проход.Для вычислений использовать функцию Solution. Разберу на примере, что именно нужно сделать. Например, вводится вот такой массив: 1 2 3 4 -5 -4 1 2 8 Начинаем суммировать элементы.Суммируем до тех пор, пока не понимаем, что если мы просуммируем следующий член, то сумма не будет максимальной. То есть суммируем 1, 2,3,4. Затем, программа понимает, что если мы прибавим -5, то сумма уже не будет максимальной. По этой же причине пропускаем -4. Затем программа складывает 1, 2, 8 и получает максимальную сумму 11. Надеюсь на вашу помощь. То, что вышло, это сумма подряд идущих чисел, вроде 1,2,3,4,5.
0
|
22.11.2019, 13:44 | |
Ответы с готовыми решениями:
5
Найти максимальную сумму подряд идущих элементов(по индексу) Найти сумму всех идущих подряд в начале последовательности нечетных чисел Найти самую длинную подпоследовательность подряд идущих чередующихся элементов массива Найти и вывести наибольшее число возрастающих (убывающих) элементов матрицы, идущих подряд |
22.11.2019, 14:56 | 2 | |||||
Сообщение было отмечено Schock как решение
Решение
гля сюды
1
|
1 / 1 / 0
Регистрация: 21.10.2019
Сообщений: 42
|
|
22.11.2019, 15:54 [ТС] | 3 |
InvalidCode, Спасибо большое. Так просто.... Почему я не догадался.......
0
|
466 / 393 / 122
Регистрация: 23.05.2016
Сообщений: 1,572
|
|
22.11.2019, 16:15 | 4 |
Schock,
В последовательности 1 2 3 4 -5 -4 1 2 8 сумма ВСЕХ элементов равна 12, она же и является максимальной суммой подряд идущих элементов (очевидно, что все элементы идут подряд), а вы нашли только сумму 11. Либо неправильная формулировка задачи, либо неправильное решение.
0
|
1 / 1 / 0
Регистрация: 21.10.2019
Сообщений: 42
|
|
22.11.2019, 16:23 [ТС] | 5 |
Sindbad_M, Насчет этого вы правы. Но этот пример я взял у преподавателя после того, как я 2 раза ошибся с условием задачи (неправильно его понял). Может быть и он ошибся. Как выйти из этой ситуации?
Я думаю оставить эту функцию и еще добавить функцию, которая будет просто суммировать все элементы последовательности без разбора. И на выходе добавить проверку, что если summax>, то выводим summax. Если Сумма всех больше, то выводим ее. Так пойдет?
0
|
466 / 393 / 122
Регистрация: 23.05.2016
Сообщений: 1,572
|
|
22.11.2019, 16:27 | 6 |
Schock, усложняете. Возьмите за основу код InvalidCode. Двигаясь по массиву храните найденную максимальную сумму и текущую сумму. Текущую сумму обнуляйте не тогда, когда встретите первое отрицательное число, а когда текущая сумма станет отрицательной.
1
|
22.11.2019, 16:27 | |
22.11.2019, 16:27 | |
Помогаю со студенческими работами здесь
6
Найти наиболее длинную подпоследовательность подряд идущих элементов, которые равны (кроме двух произвольных) Вводится массив целых чисел. Найти в данном массиве кол-во интервалов убывания (т.е. подряд идущих элементов, которые мо Найти максимальную сумму не соседних элементов массива Найти максимальную сумму подряд идущих N элементов массива Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |