Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
8 / 8 / 1
Регистрация: 22.02.2012
Сообщений: 168

Подсчет количества идущих подряд неуменьшающихся элементов списка

16.10.2023, 23:55. Показов 590. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер.
Есть задача:
-ввести с клавиатуры через пробел несколько чисел;
-найти максимально длинную последовательность неуменьшающихся чисел (идущих подряд).
То есть, при вводе чисел: 10 20 20 50 40 на экран должно выйти 4.
Я пока разобралась только, как считать введенную последовательность в виде чисел:

Python
1
2
3
A = input().split()    
for i in range(len(A)):
    A[i] = int(A[i])
Так, при вводе 10 20 20 50 40 получается список [10, 20, 20, 50, 40].
Не могу разобраться, как дальше сравнить числа внутри этого списка.
Пробовала счетчиком, но программа просто считает количество чисел:

Python
1
2
3
4
5
6
amount=0
for i in A:  
    if i <= i+1:
        i=+1 
        amount=amount+1
print(amount)
Прошу помощи.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
16.10.2023, 23:55
Ответы с готовыми решениями:

Подсчет и группировка одинаковых подряд идущих элементов последовательности"
Рассмотрим последовательности чисел. Первая последовательность состоит из одного числа K. Каждая следующая последовательность чисел...

Подсчет максимального количества подряд идущих элементов
Объясните, в чем ошибка, пожалуйста. Ссылка на задание: https://inf-ege.sdamgia.ru/problem?id=2903 var a : array of integer; i,...

Подсчет максимального количества подряд идущих совпадающих элементов массива
ребят помогите!!! короче вот: Опишите на русском языке или одном из языков программирования алгоритм подсчета максимального количества...

8
Нарушитель
110 / 86 / 32
Регистрация: 10.05.2023
Сообщений: 323
17.10.2023, 00:18
вот попробуй, вроде работает:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
A = input().split()
for i in range(len(A)):
    A[i] = int(A[i])
 
max_length = 1
current_length = 1
 
for i in range(1, len(A)):
    if A[i] >= A[i-1]:
        current_length += 1
    else:
        if current_length > max_length:
            max_length = current_length
        current_length = 1
 
if current_length > max_length:
    max_length = current_length
 
print(max_length)
но если ты решишь ввести тут например только повторяющиеся или на уменьшение, то будет синтаксическая ошибка, решишь написать 10 20 30 30 то он выдаст 4, повторы если они не уменьшается то тоже считает как последовательность неуменьшающихся чисел. Если нужна логика можно слегка подкорректировать
1
 Аватар для Vigi
641 / 481 / 179
Регистрация: 28.05.2012
Сообщений: 1,419
17.10.2023, 05:37
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
n = map(int, input().split())
 
inf = float("-inf")
s = 0
 
for i in n:
    if i >= inf:
        inf = i
        s += 1
    else:
        break
 
print(s)
1
8 / 8 / 1
Регистрация: 22.02.2012
Сообщений: 168
17.10.2023, 19:20  [ТС]
Спасибо.
Буду разбираться сейчас.
У меня вот с этой строчкой была возня:
Python
1
if A[i] >= A[i-1]:
Я тоже так заводила цикл, но в чем-то была ошибка.
0
Нарушитель
110 / 86 / 32
Регистрация: 10.05.2023
Сообщений: 323
17.10.2023, 20:14
Цитата Сообщение от Vigi Посмотреть сообщение
print(s)
согласен, компактный код, так то, если ввести 2 одинаковых значения или не число, то ошибка выйдет... Но для задания самое оно...
0
3750 / 1944 / 612
Регистрация: 21.11.2021
Сообщений: 3,707
17.10.2023, 20:59
Vigi,
Python
1
2
->3 2 1 2 3
1
Мой вариант:
Python
1
2
3
4
5
6
7
8
arr = list(map(int, input('->').split()))
cur_ind = 0
res = 0
for i in range(len(arr)):
    if i == len(arr)-1 or arr[i] > arr[i+1]:
        res = max(res, i+1 - cur_ind)
        cur_ind = i+1
print(res)
0
Нарушитель
110 / 86 / 32
Регистрация: 10.05.2023
Сообщений: 323
17.10.2023, 21:18
Цитата Сообщение от idealist Посмотреть сообщение
Мой вариант:
опять же если ввести повторяющиеся цифры будет ошибка:
Python
1
2
3
4
->10 20 30 10
3
10 20 30 10 10
SyntaxError: invalid syntax
Добавлено через 5 минут
даже для такой программы нужно очень много вариантов продумать ввода цифр, в начале в середине в конце, если будет повторяться, если будет ровное количество увеличивающихся чисел два раза 10 20 30 10 20 30 и тому подобное...
0
3750 / 1944 / 612
Регистрация: 21.11.2021
Сообщений: 3,707
17.10.2023, 23:40
Цитата Сообщение от ARTURK16 Посмотреть сообщение
будет ошибка
Да не, вы при вводе ошиблись. Каждый раз нужно снова запускать программу. Второй ввод у вас не после стрелочки.
0
 Аватар для Vigi
641 / 481 / 179
Регистрация: 28.05.2012
Сообщений: 1,419
18.10.2023, 05:59
Цитата Сообщение от ARTURK16 Посмотреть сообщение
если ввести 2 одинаковых значения или не число, то ошибка выйдет...
два одинаковых значения ошибки не будет...

Я просто показал сам алгоритм решения, а условия пусть думает TC

хотя немного подправить строку ввода:
Python
1
n = [int(i) for i in input().split() if i.isdigit()]
Вложения
Тип файла: mp4 ScreenRecorderProject7.mp4 (1.06 Мб, 8 просмотров)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.10.2023, 05:59
Помогаю со студенческими работами здесь

Подсчет максимального количества подряд идущих отрицательных элементов в целочисленном массиве
C#. Console. Напишите программу подсчета максимального количества подряд идущих отрицательных элементов в целочисленном массиве длины...

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

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

Подсчет сумм максимального количества подряд идущих значений
Добрый день! Нашел в интернете урок Подсчет максимального количества подряд идущих значений в MS EXCEL из урока я беру формулу...

Подсчет подряд идущих отрицательных элементов
C 2 № 2908. Опишите на русском языке или на одном из языков программирования алгоритм подсчета максимального количества подряд идущих...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 25.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 23.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru