На курсах в домашке такое задание:
Вводится число N,
далее еще N − 1 чисел:
номера оставшихся карточек (различные числа от 1 до N).
Программа должна вывести номер потерянной карточки.
Например: есть 5 карточек, цикл идёт in range(1, 5). Вводим по очереди 1,2,4,5. И методом исключения программа должна вывести 3. Я так и не смог найти алгоритм, по которому введенные числа должны исключаться из range, чтобы остался только 1 вариант...
Python
Метод исключения в цикле for?
Для решения этой задачи можно использовать функцию range() и цикл for. В цикле for мы будем перебирать числа от 1 до N и проверять, есть ли текущее число в списке введенных чисел. Если число есть в списке, то мы его удаляем из списка. В конце цикла у нас останется только одно число - это и будет номер потерянной карточки.
Вот пример кода на Python:
Вот пример кода на Python:
Вот пример кода на Python:
n = int(input())
cards = list(range(1, n + 1))
for i in range(n - 1):
card = int(input())
cards.remove(card)
print(cards[0])
Если вы хотите использовать метод исключения, то можно создать два списка: один список будет содержать все числа от 1 до N, а второй список будет содержать введенные числа. Затем мы будем перебирать все числа из первого списка и проверять, есть ли они во втором списке. Если число не найдено во втором списке, то это и будет номер потерянной карточки. Вот пример кода на Python:
n = int(input())
all_cards = list(range(1, n + 1))
input_cards = []
for i in range(n - 1):
card = int(input())
input_cards.append(card)
lost_card = list(set(all_cards) - set(input_cards))[0]
print(lost_card)
Питон питоном, а сам алгоритм не понятен. Что такое "исключить", при каких условиях исключить, почему именно 3 исключаем из пяти:
есть 5 карточек, цикл идёт in range(1, 5). Вводим по очереди 1,2,4,5. И методом исключения программа должна вывести 3Написать проверку условия в цикле никак?
На for, range и кортежах:
На for, range и битовых масках:
n = int(input())
ks = (int(input()) for _ in range(1, n))
cs = (False,) * n
for k in ks: cs = cs[:k-1] + (True,) + cs[k:]
print(*(j+1 for j in range(n) if not cs[j]), sep = '\n')
Кортежи используются в качестве списков. Поскольку они немутабельные, в каждой итерации формируется новый кортеж.На for, range и битовых масках:
n = int(input())
ks = (int(input()) for _ in range(1, n))
c = 0
for k in ks: c |= 1
Если i не соответствует введенному числу добавляем в массив.
Сергей Сорокин
Мы не проходили массивы...
В конкретном задании можно использовать только то, что было пройдено в модуле. Это цикл for, функция range, в дополнительных материалах указан кортеж.
В конкретном задании можно использовать только то, что было пройдено в модуле. Это цикл for, функция range, в дополнительных материалах указан кортеж.
Похожие вопросы
- Что делает нижнее подчёркивание в цикле for. Нужно подробное объяснение.
- Питон. Нужно помочь решить задачу с циклом for
- Как работает цикл for и While. Напишите пример
- Питон программирование. Цикл for
- Помогите решить информатику на языке ПИТОН!!!!!!!!!!!!!! с помощью циклов while и for
- Python FOR цикл
- Задача в Python? Помогите решить, не получается! Решить нужно без функций и методов. Только циклы и условные операторы.
- Помогите разобраться и объяснить принцип действия цикла поиска простых чисел в Pyrhon
- Почему цикл не останавливается ?
- 4 задачи по темам:Массивы,Строки,Циклы,условный оператор
N = int(input('Введите количество карт')
Далее
for cards in range(1, N)
Далее методом input запрашиваются номера карт, которые есть.