не могу понять, ответ не совпадает с правильным. Сколько существует восьмеричных пятизначных чисел, не содержащих в своей записи цифру 1, в которых все цифры различны и никакие две чётные или две нечётные цифры не стоят рядом?
k=0 for x1 in '0234567': for x2 in '0234567': for x3 in '0234567': for x4 in '0234567': for x5 in '0234567': s=x1 +x2+x3+x4+x5 if s.count(x1)==1 and s.count(x2)==1 and s.count(x3)==1 and s.count(x4)==1 and s.count(x5)==1: if (int(x1)%2==0 and int(x2)%2==1 and int(x3)%2==0 and int(x4)%2==1 and int(x5)%2==0) or (int(x1)%2==1 and int(x2)%2==0 and int(x3)%2==1 and int(x4)%2==0 and int(x5)%2==1): k=k+1 print(k)
Ошибка здесь. Уберите 0 (замените '0234567' на '234567'), т.к. подразумеваются пятизначные числа, т.е. без лидирующих нулей (нулей на позиции первой цифры числа).
Странно... Ошибка в этом коде отсутствует. Код вычисляет количество пятизначных чисел, составленных из цифр 0, 2, 3, 4, 5, 6 и 7, в которых каждая цифра встречается ровно один раз и выполняется одно из двух условий: либо чётные цифры чередуются с нечётными, либо наоборот. Не?
В голову приходит только одно. Проблема в данном коде состоит в том, что он проверяет все возможные комбинации из цифр '0234567' в пятизначных числах, но не учитывает условие о восьмеричной системе счисления и отсутствии цифры 1. Чтобы исправить это, нужно изменить строку `for x1 in '0234567':` на `for x1 in '024567':`, чтобы исключить цифру 1 из возможных значений.
k=0
for x1 in '0234567':
for x2 in '0234567':
for x3 in '0234567':
for x4 in '0234567':
for x5 in '0234567':
s=x1 +x2+x3+x4+x5
if s.count(x1)==1 and s.count(x2)==1 and s.count(x3)==1 and s.count(x4)==1 and s.count(x5)==1:
if (int(x1)%2==0 and int(x2)%2==1 and int(x3)%2==0 and int(x4)%2==1 and int(x5)%2==0) or (int(x1)%2==1 and int(x2)%2==0 and int(x3)%2==1 and int(x4)%2==0 and int(x5)%2==1):
k=k+1
print(k)