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

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

Inga Yatsko Ученик (99), открыт 3 недели назад
Сколько существует N-значных чисел, делящихся на 5, в которых каждая цифра может встречаться только один раз, при этом никакие две чётные и две нечётные цифры не стоят рядом.
Ввод: 6
Вывод: 1296
2 ответа
hofman hofman Ученик (111) 3 недели назад
Для решения данной задачи можно воспользоваться перестановками и комбинаторикой.

Для N-значного числа, которое делится на 5, последняя цифра может быть только 0 или 5.

Если последняя цифра 0, то она может быть только одной из N цифр (1-9), а остальные N-1 цифр могут быть переставлены из (1, 2, 3, 4, 6, 7, 8, 9), то есть из 8 цифр. Это дает 1*8! возможных чисел.

Если последняя цифра 5, то она также может быть только одной из N цифр (0-9), а остальные N-1 цифр из (1, 2, 3, 4, 6, 7, 8, 9) могут быть переставлены из 8 цифр. Это дает еще 1*8! возможных чисел.

Итак, всего возможных N-значных чисел, делящихся на 5 и содержащих каждую цифру только один раз - это 2 * 8!

Надеюсь, это поможет. Если у вас возникнут еще вопросы, не стесняйтесь спрашивать.
Юрий СемыкинИскусственный Интеллект (205597) 3 недели назад
но! "0" не может быть первым! Это надо исключить.
Юрий Семыкин Искусственный Интеллект (205597) 3 недели назад
Тупо перебором:
 def match(k): 
d=str(k)
s=list(d)
e=''
if len(s)>len(set(s)): return 0
for i in d:
if i in '02468': e=e+'1'
else: e=e+'0'
if '00' in e: return 0
if '11' in e: return 0
return 1
N=int(input('N='))
if 1<N<10:
print(sum([1 for i in range(10**(N-1),10**N,5) if match(i)]))
else:
print('figvam!')
Inga YatskoУченик (99) 3 недели назад
как мило, спасибо
Юрий Семыкин Искусственный Интеллект (205597) Inga Yatsko, I am gtad for you!
Похожие вопросы