Python. Цикл for. где ошибка в коде?

'''Задача «Потерянная карточка» Условие Для настольной игры используются карточки с номерами от 1 до N. Одна карточка потерялась. Найдите ее, зная номера оставшихся карточек. Дано число N, далее N − 1 номер оставшихся карточек (различные числа от 1 до N). Программа должна вывести номер потерянной карточки.

есть иное решение в интернете, но я пытался делать по своему. А так не работает'''

sum1=0
sum2=0
n = int(input())
for j in range(int(input())):
    sum2 += j
for i in range(1, n + 1):
    sum1 += i
print(sum1-sum2)

Ответы (2 шт):

Автор решения: Tehnorobot

Данный фрагмент кода верный, то есть вы складываете числа в промежутке от 1 до n + 1

`for i in range(1, n + 1):
    sum1 += i

Но:

for j in range(int(input())):
    sum2 += j

Данный фрагмент кода неверный. Вам необходимо указать через цикл известные значения.

Например, так:

for i in range(n - 1):
    num = int(input()) # вводим известные числа до n - 1

Чтобы найти неизвестное число, можно вычитать sum1 (все числа в промежутке до n включительно) из известных чисел и получить потерянное число:

sum1 = 0

n = int(input())

for j in range(1, n + 1):
    sum1 += j # складываем значения итераций от 1 до n включительно

for i in range(n - 1):
    sum1 -= int(input()) # вычитаем из вводимых чисел значения в промежутке n - 1, так как потерянного числа нет
    
print(sum1)
→ Ссылка
Автор решения: KoalaCode

Не знаю актуален ли данный вопрос. Но я нашел более изящное решение в 1 цикл.

n = int(input()) 
sum = 0
for i in range(1, n):
    sum += int(input())
    n += i
print(n - sum)
→ Ссылка