Создать массив из 20 случайных чисел в диапазоне от -9 до 20. Определить подряд идущие положительные значения, не прерываемых нулями и отрицательными числами. Вывести на консоль исходный массив чисел и найденный фрагмент (числа через пробел).
Пример :
1, 2, -1, 7, 3, 11, 0, -2, 15
Есть три блока подряд идущих чисел не прерываемых отрицательными числами или нолем.
1,2
7,3,11 (самый длинный)
15
Результат:
7,3,11
Ответы
python:
import random
# Создание массива из 20 случайных чисел в диапазоне от -9 до 20
arr = [random.randint(-9, 20) for i in range(20)]
print("Исходный массив:", arr)
# Поиск подряд идущих положительных значений, не прерываемых нулями и отрицательными числами
max_subarray = []
subarray = []
for num in arr:
if num > 0:
subarray.append(num)
else:
if len(subarray) > len(max_subarray):
max_subarray = subarray
subarray = []
if len(subarray) > len(max_subarray):
max_subarray = subarray
# Вывод найденного фрагмента на консоль
if len(max_subarray) > 0:
print("Подряд идущие положительные значения не прерываемые нулями и отрицательными числами:")
print(*max_subarray)
else:
print("Не найдено подряд идущих положительных значений не прерываемых нулями и отрицательными числами.")