Чтобы решить эту задачу, давайте разработаем программу, которая выполнит следующие шаги:
- Считать ввод, состоящий из кода и его попыток ввода.
- Выделить верный код и все попытки.
- Сравнить каждую попытку с верным кодом и сохранить неверные попытки в отдельный список.
- В конце вывести неверные попытки в нужном формате: все неверные коды должны быть разделены одним пробелом, а если их нет — ничего не выводить.
Реализация решения
Вот пример на языке Python. Мы используем input() для чтения данных и print() для вывода.
# Чтение правильного кода
correct_code = input().strip()
# Инициализируем список для неверных попыток
incorrect_attempts = []
# Чтение попыток ввода до тех пор, пока не введен правильный код
while True:
attempt = input().strip()
# Если попытка совпадает с правильным кодом, выходим из цикла
if attempt == correct_code:
break
# Если попытка не совпадает, добавляем её в список неверных
incorrect_attempts.append(attempt)
# Проверяем, есть ли неверные попытки для вывода
if incorrect_attempts:
print(" ".join(incorrect_attempts))
Пояснения к коду:
Считывание кода: Мы сначала считываем правильный код от домофона с помощью
input()и обрезаем лишние пробелы с помощьюstrip().Считывание попыток: Далее, мы используем бесконечный цикл
while Trueдля считывания попыток ввода. Для каждой попытки мы также убираем лишние пробелы.Сравнение кодов: Если введённый код соответствует правильному, программа выходит из цикла с помощью
break. В противном случае она добавляет неверную попытку в списокincorrect_attempts.Вывод результата: Наконец, если список неверных попыток не пуст, мы выводим их, объединяя элементы списка строкой с одним пробелом между ними с помощью метода
join(). Если неверных попыток нет, программа ничего не выводит.
Примеры использования:
Если пользователь вводит:
1234 111 000 123 1234Программа выведет:
111 000 123Если пользователь вводит:
5555 5555Программа не выведет ничего, так как первая попытка верная.
Это решение должно соответствовать всем требованиям задачи, учитывая различные сценарии ввода.