Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Почему этот код на python не решает эту задачу из егэ по информатике?

ВАдим Тагиров Гуру (2575), на голосовании 6 дней назад
 count = 0
a = 'АЕКР'
for a in a:
for b in a:
for c in a:
for d in a:
word = a+b+c+d
count += 1
if word.count('А') == 0:
print(count)
break
выдает
2
3
4
правильный ответ 86
вот решение, где вместо строки используется словарь, но я не понимаю почему он работает, а мой код - нет.
 a = {0: 
Голосование за лучший ответ
Никита Охотников Профи (582) 1 месяц назад
Не советую решать через цикл в цикле и так далее. Лучше воспользуйся библиотекой itertools - она точно будет на экзамене.

 from itertools import product 

c: int = 0 # счётчик
for x in product('АЕКР', repeat=4):
c += 1
s = ''.join(x)
if 'А' not in s:
print(c)
break
P.S. - Если ну очень лень по алфавиту букавки эти ваши раставлять, то отсортируй строчку с помощью функции sorted():

 ... 
for x in product(sorted('РЕКА'), repeat=4):
...
Только учти один нюанс: интерпретатор не понимает в кириллице лишь одну букву - Ё, из-за чего он её сортирует неправильно, поэтому не злоупотребляй sorted()
SchweikМыслитель (6144) 1 месяц назад
ВАдим просто невнимателен - for a in a: - не надо так делать.
И, таки да, циклы тут явно лишние :D 4^3 + 4^2 + 4^1 + 4^0 + 1 = 85.
Похожие вопросы