Задача 5 У Сони есть n карандашей разных цветов. О...
تم الإنشاء في: ٢٠ فبراير ٢٠٢٥
تم الإنشاء في: ٢٠ فبراير ٢٠٢٥
Задача 5
У Сони есть n карандашей разных цветов. Она снова взялась за Васин учебник. Каждый следующий символ она красит карандашом другого цвета. Через каждые n символов она возвращается к первому карандашу.
Дана строка с текстом, раскрашенным Соней. Первый символ в строке покрашен красным. Выведи последний красный символ в строке.
Ввод Вывод
сегодня
3 я
КАРТОН
6 К
Примечание: в строке "сегодня" будет две полные тройки: "сег" и "одн" и «остаток» из строки "я". Красным будет символ "я". В строке "КАРТОН" символов столько же, сколько у Сони карандашей. Поэтому красный символ только один: это "К".
Разбор задачи
Пусть:
Тогда последний красный символ будет на позиции:
После того, как найдём эту позицию (обозначим её ), достаточно вывести символ строки на этом месте.
Пошаговое решение
Примеры
Пример 1
textсегодня 3
Пример 2
textКАРТОН 6
Таким образом, решение сводится к одной простой формуле и выборке соответствующего символа из строки.
Задача 5
У Сони есть n карандашей разных цветов. Она снова взялась за Васин учебник. Каждый следующий символ она красит карандашом другого цвета. Через каждые n символов она возвращается к первому карандашу.
Дана строка с текстом, раскрашенным Соней. Первый символ в строке покрашен красным. Выведи последний красный символ в строке.
Ввод Вывод
сегодня
3 я
КАРТОН
6 К
Примечание: в строке "сегодня" будет две полные тройки: "сег" и "одн" и «остаток» из строки "я". Красным будет символ "я". В строке "КАРТОН" символов столько же, сколько у Сони карандашей. Поэтому красный символ только один: это "К".
напишите программу
Вот программа на Python, которая решает эту задачу:
pythondef last_red_symbol(text: str, n: int) -> str: # Длина строки length = len(text) # Вычисляем индекс последнего красного символа last_red_index = (length - 1) // n * n # Нумерация с 0, поэтому (length - 1) # Выводим символ по найденному индексу return text[last_red_index] # Считываем входные данные text = input().strip() n = int(input().strip()) # Выводим результат print(last_red_symbol(text, n))
//).textсегодня 3
Рассчёт:
7(7 - 1) // 3 * 3 = 6текст[6] = "я"Вывод:
я
textКАРТОН 6
Рассчёт:
6(6 - 1) // 6 * 6 = 0текст[0] = "К"Вывод:
К
Этот код эффективно решает задачу для любых входных данных.