Все 4-буквенные слова, составленные из букв А,Б,В,Г записаны в алфавитном порядке. Вот начало списка:
1. АААА
2. АААБ
3. АААВ
4. АААГ
5. ААБА
Запишите слово, которое стоит на 78-м месте от начала списка.
Класс, давай разберёмся и сделаем код, чтобы легко получать 78-е слово.
Суть задачи
- Берём слова из букв А, Б, В, Г в лексикографическом порядке.
- Это как числа в четверичной системе (основание 4): 0000, 0001, 0002, 0003, 0010, ...
- 78-е место соответствует номеру 77 в нулевой-based счёте.
- Число 77 в четверичной системе — 1031_4, что в буквенной замене даёт Б-А-Г-Б → БАГБ.
Как решить кодом
- Алгоритм: взять k-1, записать его в основание 4 с ровно 4 цифрами (с лидирующими нулями), затем заменить 0→А, 1→Б, 2→В, 3→Г.
Пример на Python (чистый и понятный):
def kth_word(k):
letters = ['А','Б','В','Г'] # 0,1,2,3
n = k - 1
digits = [0, 0, 0, 0]
for i in range(3, -1, -1):
digits[i] = n % 4
n //= 4
return ''.join(letters[d] for d in digits)
print(kth_word(78)) # БАГБ
Почему так работает
- Первый элемент (k=1) → n=0 → digits = 0000 → АААА. Правильно.
- Для k=78 получаем 77 в четверичной: 1031_4 → БАГБ, как и нужно.
- Замена цифр на буквы делает перестановку соответствующей последовательности.
Если хочешь, могу привести аналог на другом языке (например, JavaScript) или написать короткую версию без массива digits, прямо формируя строку по цифрам.
Оцените, пожалуйста, мой ответ лайком или дизлайком.