Элемент последовательности называется локальным максимумом,
если он строго больше предыдущего и последующего элемента последовательности.
Первый и последний элемент последовательности не являются локальными максимумами.

Использовать массивы в данной задаче нельзя.

Дана последовательность натуральных чисел, завершающаяся числом 0.
Определите количество строгих локальных максимумов в этой последовательности.

Входные данные
Вводится последовательность целых чисел, оканчивающаяся числом 0
(само число 0 в последовательность не входит, а служит как признак ее окончания).

Выходные данные
Выведите ответ на задачу.

Примеры
входные данные
1
2
1
2
1
0
выходные данные
2

решить на Python 3.7.0

ПотнаяБабка2000 ПотнаяБабка2000    2   05.03.2020 07:04    66

Ответы
НастяБелова10 НастяБелова10  24.01.2024 12:21
Добрый день!

Давайте разберемся с этой задачей пошагово.

1. Нам нужно посчитать количество строгих локальных максимумов в последовательности натуральных чисел, завершающейся числом 0.

2. Начнем с ввода последовательности. Ввод чисел будет продолжаться до тех пор, пока не будет введено число 0. Введенные числа мы будем сохранять в списке.

3. Создадим переменную "count", которая будет считать количество строгих локальных максимумов. На данный момент ее значение равно 0.

4. Пройдем по списку введенных чисел, начиная с индекса 1 (элемент с индексом 0 является первым элементом последовательности, который не может быть локальным максимумом).

5. На каждом шаге проверим, является ли текущий элемент строгим локальным максимумом. Для этого сравним его со значением предыдущего элемента (с индексом "i-1") и следующего элемента (с индексом "i+1"). Если текущий элемент больше предыдущего и больше следующего, то он является локальным максимумом и мы увеличиваем значение переменной "count" на 1.

6. После прохода по всем элементам списка, выводим значение переменной "count".

Давайте теперь запишем этот алгоритм на языке Python:

```python
# Ввод последовательности
sequence = []
num = int(input())

while num != 0:
sequence.append(num)
num = int(input())

# Подсчет локальных максимумов
count = 0

for i in range(1, len(sequence)-1):
if sequence[i] > sequence[i-1] and sequence[i] > sequence[i+1]:
count += 1

# Вывод результата
print(count)
```

Теперь можно запустить код и проверить его на вашем примере:

```
1
2
1
2
1
0
```

Вывод: 2

Надеюсь, этот ответ понятен для вас, и вы успешно решите эту задачу! Если у вас возникнут еще вопросы, не стесняйтесь задавать.
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика