Форум » Кодирование и декодирование информации » Тема 8, задание 5890 генератор » Ответить

Тема 8, задание 5890 генератор

ganilova: (А. Бриккер) Определите количество шестизначных чисел, записанных в восьмеричной системе счисления, в которых первые две цифры меньше всех оставшихся четырёх цифр, а запись числа не содержит трёх подряд идущих чётных цифр. Моя программа выдает ответ 7156, на сайте ответ 5528 я сделала вывод подходящих чисел и не увидела там лишних. [pre2] from itertools import product count = 0 for n in product( '01234567', repeat=6 ): s=''.join(n) if s[0] != '0' and max(s[:2]) < min(s[2:]): f = True for i in range(4): p = set(s[i:i+3]) if len(p) == 1 and s[ i ] in '246': f = False if f: print(s) count += 1 print( count ) Хотелось бы понять свою ошибку, если она есть. [/pre2]

Ответов - 2

ЕленаФом: я написала код немного иначе [pre2] from itertools import product ABC = "01234567" CHET = "0246" words = ["".join(t) for t in product(ABC,repeat=6) if t[0] != '0'] count = 0 for w in words: arr = [not ( w[ i ] in CHET and w[i+1] in CHET and w[i+2] in CHET ) \ for i in range(0,3+1)] if all(arr) and max(w[0],w[1]) < min(w[2:]) : count += 1 #print(w) print(count) [/pre2]

ganilova: Спасибо, увидела, что не дочитала условие!



полная версия страницы