Мини-урок · перед практикой

Потерянная карточка

Вычитаем известные номера из суммы всех карточек.

Как к ней подойти

Научитесь замечать повторяющееся действие и аккуратно собирать результат в цикле for.

Коротко о теме

Цикл for подходит, когда известно, сколько раз нужно повторить действие. Перед циклом задайте начальное значение результата, внутри обновляйте его, а после цикла выводите итог. Проверьте, входит ли последняя граница в range().

Ключевая идея · Сумма прогрессии

Все присутствующие номера сокращаются; остаётся потерянный.

Проверьте перед запуском

  • При N=1 других карточек нет; ответ сразу равен 1.

Сравните свой подход

Ниже - готовое решение, другой способ, если он есть, и важные детали проверки.

Ваше принятое решение

Рекомендуемое решение: Сумма прогрессии

Все присутствующие номера сокращаются; остаётся потерянный.

n = int(input())
missing = n * (n + 1) // 2
for _ in range(n - 1):
    missing -= int(input())
print(missing)

Время: O(n). Память: O(1) целых чисел.

Другой способ: Побитовое исключающее ИЛИ

x XOR x равен нулю, поэтому одинаковые номера взаимно уничтожаются.

n = int(input())
missing = 0
for i in range(1, n + 1):
    missing ^= i
for _ in range(n - 1):
    missing ^= int(input())
print(missing)

Время: O(n). Память: O(1) целых чисел.