Все 5-буквенные слова, составленные из букв Л, О, Д, К, А, записаны в алфавитном порядке. Вот начало списка:
1. ААААА
2. ААААД
3. ААААК
4. ААААЛ
5. ААААО
6. АААДА
…..
Под каким номером в списке идёт первое слово, которое не начинается и не заканчивается на А и содержит две буквы Д?
Решение руками:
Заменим буквы на цифры: А — 0, Д — 1, К — 2, Л — 3, О – 4.
Теперь запишем 5-буквенные слова в новом алфавите.
1. 00000
2. 00001
3. 00002
4. 00003
5. 00004
6. 00010
…..
Полученный ряд — числа в пятиричной системе счисления, записанные по возрастанию.
На первое место мы не можем поставить А, следовательно там должна быть буква, с минимальным числовым эквивалентом – Д. С последней позицией аналогично, таким образом в слове уже есть 2 буквы Д. Тогда на остальные позиции ставим букву А (так как она эквивалентна числу 0). В итоге получаем слово ДАААД, в пятиричной системе это слово выглядит так — .
Переводим в десятичную систему счисления: .
Но поскольку номер в списке на единицу больше самого числа, то остается добавить к получившемуся числу единицу. Получаем число 627.
Решение программой:
s = ’АДКЛО’
cc = 0
for i in s:
for j in s:
for k in s:
for n in s:
for p in s:
aa = i+j+k+n+p
cc += 1
if aa[0] != ’А’ and aa[-1] != ’А’ and aa.count(’Д’) == 2:
print(cc)
break
Первое выведенное число и будет являться ответом.