Вопрос задан 29.10.2023 в 01:17. Предмет Информатика. Спрашивает Вернер Полина.

Максимальная длина монотонного фрагмента последовательности. Дана последовательность натуральных

чисел, завершающаяся числом 0. Определите наибольшую длину монотонного фрагмента последовательности (то есть такого фрагмента, где все элементы либо больше предыдущего, либо меньше). Ввод Вывод 1 2 7 7 9 1 0
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Мальгина Анна.

===== PascalABC.NET =====

begin

 var (k, kmax, s) := (1, 0, 1);

 var a := ReadInteger;

 if a = 0 then

 begin

   Print(1);

   exit

 end;

 foreach var b in ReadSeqIntegerWhile(p -> p <> 0) do

 begin

   var sgn := Sign(b - a);

   a := b;

   if sgn = s then

     k += 1

   else

   begin

     if k > kmax then

       kmax := k;  

     (k, s) := (2, sgn)

   end  

 end;

 if k > kmax then

   kmax := k;

 Print(kmax)

end.


0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.
Монотонный фрагмент последовательности - это фрагмент последовательности, в котором все элементы либо строго возрастают, либо строго убывают. Для решения этой задачи, можно использовать следующий алгоритм. Изначально устанавливаем счетчики длины возрастающего и убывающего фрагментов равными 1. Затем последовательно проходим по элементам последовательности, начиная со второго элемента. Если текущий элемент больше предыдущего, увеличиваем счетчик длины возрастающего фрагмента на 1. Если текущий элемент меньше предыдущего, увеличиваем счетчик длины убывающего фрагмента на 1. Если текущий элемент равен предыдущему, счетчики сбрасываются до 1. После каждого шага, проверяем, является ли текущая длина возрастающего или убывающего фрагмента максимальной и обновляем максимальную длину при необходимости. В данном случае, после обработки последнего элемента, максимальная длина будет равна 3, так как в последовательности есть фрагмент 7-7-9, который является наибольшим монотонным фрагментом. Определение максимальной длины фрагмента будет выглядеть следующим образом: ``` sequence = [] # создаем пустой список для хранения последовательности number = int(input()) # считываем первое число while number != 0: # пока число не равно 0, добавляем его в список sequence.append(number) number = int(input()) max_increasing_length = 1 # инициализируем максимальную длину возрастающего фрагмента max_decreasing_length = 1 # инициализируем максимальную длину убывающего фрагмента current_increasing_length = 1 # инициализируем текущую длину возрастающего фрагмента current_decreasing_length = 1 # инициализируем текущую длину убывающего фрагмента for i in range(1, len(sequence)): # проходим по элементам последовательности, начиная со второго if sequence[i] > sequence[i-1]: # если текущий элемент больше предыдущего current_increasing_length += 1 # увеличиваем длину возрастающего фрагмента на 1 current_decreasing_length = 1 # сбрасываем длину убывающего фрагмента до 1 elif sequence[i] < sequence[i-1]: # если текущий элемент меньше предыдущего current_decreasing_length += 1 # увеличиваем длину убывающего фрагмента на 1 current_increasing_length = 1 # сбрасываем длину возрастающего фрагмента до 1 else: # если текущий элемент равен предыдущему current_increasing_length = 1 # сбрасываем длину возрастающего фрагмента до 1 current_decreasing_length = 1 # сбрасываем длину убывающего фрагмента до 1 max_increasing_length = max(max_increasing_length, current_increasing_length) # проверяем и обновляем максимальную длину возрастающего фрагмента max_decreasing_length = max(max_decreasing_length, current_decreasing_length) # проверяем и обновляем максимальную длину убывающего фрагмента max_length = max(max_increasing_length, max_decreasing_length) # выбираем из двух максимальных длин наибольшую print(max_length) # выводим максимальную длину ``` Пример работы программы с введенной последовательностью 1 2 7 7 9 1 0: ``` 1 2 7 7 9 1 0 ``` Результат: ``` 3 ``` То есть максимальная длина монотонного фрагмента последовательности равна 3.
0 0

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

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос