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 шт):
Данный фрагмент кода верный, то есть вы складываете числа в промежутке от 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)
Не знаю актуален ли данный вопрос. Но я нашел более изящное решение в 1 цикл.
n = int(input())
sum = 0
for i in range(1, n):
sum += int(input())
n += i
print(n - sum)