Top.Mail.Ru
Ответы

Объясните решение задачи из ЕГЭ по информатике.

"Сколько существует десятичных чисел, которые делятся на 5, при условии что все цифры числа различные?"

Решение:

from itertools import *
word = '0123456789'
count = 0
for j in range(1,11):
for i in permutations(word,j):
x = ''.join(i)
if x[0] != '0' and (x[-1] == '5' or x[-1] == '0'):
count += 1
print(count + 1) #+1 случай когда число равно 0

Объясните, что делает строчка:
for j in range(1,11):

for i in permutations(word,j):

По дате
По рейтингу
Аватар пользователя
Мудрец
1234567
 from itertools import permutations 
count = 0 
for i in range(1, 11): 
    for j in permutations(range(0, 10), i): 
        if j[0] != 0 and j[-1] % 5 == 0: 
            count += 1 
print(count + 1) 

Немного покороче код

Что касается твоего
for j in range(1,11):
цикл от 1 до 10 с шагом 1

for i in permutations(word,j):
проход по всем комбинациям чисел
цифры для числа берутся из строки word, длина числа - j