Модуль 19. Задача 8. Угадай число

Артём и Борис играют в игру. Артём загадал натуральное число от 1 до N. Борис пытается угадать это число, для этого он называет несколько чисел подряд. Артём отвечает Борису “Да”, если среди названных Борисом чисел есть задуманное. В противном случае Артём отвечает “Нет”. После нескольких заданных вопросов Борис сдался и попросил вас помочь ему определить, какие числа мог задумать Артём

Напишите программу, которая имитирует диалог Артёма и Бориса. В начале на вход подаётся число N — это максимальное число, которое мог загадать Артём. Затем Борис предполагает, что среди некоторых чисел есть то, которое загадал Артём (несколько чисел через пробел), а Артём отвечает. Так продолжается до тех пор, пока Борис не попросит помощи (пока не введётся строка “Помогите!”) или Борис не угадает число. В конце программы необходимо вывести, какие числа мог загадать Артём.

Пример реализации:

Введите максимальное число: 10

Нужное число есть среди вот этих чисел: 1 2 3 4 5
Ответ Артёма: Да

Нужное число есть среди вот этих чисел: 2 4 6 8 10
Ответ Артёма: Нет

Нужное число есть среди вот этих чисел: Помогите!
Артём мог загадать следующие числа: 1 3 5

Решение:

numbers = int(input('Введите максимальное число: '))
all_nums = set(range(1, numbers + 1))
while True:
    guess = input('Нужное число есть среди вот этих чисел: ')
    if guess == 'Помогите!':
        break
    guess = {int(x) for x in guess.split()}
    answer = input('Ответ Артёма: ')
    if answer == 'Да':
        all_nums &= guess
    else:
        all_nums -= guess

print(*all_nums)


Как можно отблагодарить:

  • Оформить удобную для вас подписку на Boosty.to
  • Разово поддержать через DonationAlerts
4970login-checkМодуль 19. Задача 8. Угадай число

Добавить комментарий