Мини-урок · перед практикой
Длина последовательности
Считаем ненулевые элементы, прекращая ввод на первом нуле.
Как к ней подойти
Разберитесь, как повторять действие, пока выполняется условие, и вовремя остановить цикл.
Коротко о теме
Цикл while продолжается, пока условие истинно. Продумайте, какое значение меняется на каждом шаге и почему цикл когда-нибудь завершится. Проверяйте как обычный ввод, так и случай, когда тело цикла выполняется ноль раз.
Ключевая идея · Один проход без хранения последовательности
Для длины не требуется хранить сами значения.
Проверьте перед запуском
- Первый ноль не входит в последовательность.
- Не нужно читать или учитывать строки после первого нуля.
После практики
Сравните свой подход
Ниже - готовое решение, другой способ, если он есть, и важные детали проверки.
Ваше принятое решение
Рекомендуемое решение: Один проход без хранения последовательности
Для длины не требуется хранить сами значения.
count = 0
while int(input()) != 0:
count += 1
print(count)
Время: O(n). Память: O(1) числовых переменных.
Другой способ: Сохранение и обработка списка
Список заканчивается перед первым нулём, поэтому его длина равна ответу.
a = []
while True:
x = int(input())
if x == 0:
break
a.append(x)
print(len(a))
Время: O(n). Память: O(n) для сохранённой последовательности.