Другие языки программирования и технологии

16. Дан массив из 20 элементов. Найти пять «соседних» элементов, сумма значений которых максимальна. ??

Вообще-то интересная задача. Так ищут максимум корреляционной зависимости в линии задержки в цифровой приёмной аппаратуре связи
Можно использовать такой вариант.
Найти сумму первых 5-ти элементов, а потом в цикле вычитать первый (в сумме) и добавлять новый, и затем проверять на максимум
ЕБ
Евгений Барышов
76 473
Лучший ответ
пишешь цикл от 1 до 5
запоминаешь 5 членов
считаешь сумму

потом другой цикл
от 1 до 5
запоминаешь 5 членов
считаешь сумму

сравниваешь и циклишь до 20 элементов
Daler Daler
Daler Daler
51 740
МаксСумма = A[Н] + A[H+1] + A[H+2] + A[H+3] + A[H+4]
ПервыйСуммы = 1
Для Н = 2 по 20-4 цикл
__Сумма = A[Н] + A[H+1] + A[H+2] + A[H+3] + A[H+4]
__Если Сумма > МаксСумма Тогда
____МаксСумма = Сумма
____ПервыйСуммы = H
__КонецЕсли
КонецЦикла
Сообщить "Максимальная сумма ", МаксСумма, " у элементов с ", ПервыйСуммы, " по ", ПервыйСуммы+4
int max,maxi;
int a[ 20 ]={ 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20};
for (int i = 0; i < 20-4; i++)
{int sum = 0;
for (int j = i; j < i+5; j++)
sum += a [ j ];
if (i = = 0) {max = sum;maxi =0;}
else if (sum > max)
{ max =sum;
maxi =i;
}
}
cout < < " max = " < < max < < " i=" < < maxi < < " a [ i ] = " < < a [ maxi ] < < e ndl;
for (int i =maxi ; i < maxi+5; i++) cout < < a [ i ] < < ",";
cout < < endl;
Пробелы подчистишь.
Питон """Дан список из 20 случайных элементов. Найти пять соседних элементов, сумма значений которых максимальна. """
import random

a = random.sample(range(20), 20)
print (a)
b = [a[i:i+5] for i in range(len(a)-4)]
c = list(map(sum,b))
print(b[c.index(max(c))])

Похожие вопросы