логический вопрос о факториалах - PullRequest
1 голос
/ 20 марта 2010

У меня есть проблема, и я не могу решить ее в одиночку. Мой учитель сегодня дает мне одно логическое задание, и я уверен, что вы сможете мне помочь.

Как подсчитать количество нулей в конце factorial (41) . ( на бумаге ) Я понимаю, что это не имеет никакого отношения к программированию, но я уверен, что программисты могут мне помочь.

Заранее спасибо.

Ответы [ 2 ]

7 голосов
/ 20 марта 2010

Если вы знаете хитрость, вам даже не нужна бумага.Число нулей в конце - это то, сколько раз оно делится на 10.,,с точки зрения простой факторизации, это минимальное количество раз, которое оно делится на 5, и количество раз, которое оно делится на 2 (так как нам нужен один коэффициент и 2 и 5, чтобы сделать факториз 10).Но с учетом факториала мы учитываем каждый фактор, меньший или равный 41, поэтому мы получим намного больше факторов 2, чем факторов 5. Поэтому нам нужно беспокоиться только о том, сколько существует факторов 5.

Итак, посчитайте числа, которые меньше или равны 41 и делятся на 5: 5,10,15,20,25,30,35,40

Их 8, но незабудьте, что 25 дает нам дополнительный коэффициент 5, так как он делится на 5 в два раза.Таким образом, всего 9 факторов из 5 (и, следовательно, 9 факторов из 10).

4 голосов
/ 20 марта 2010
floor(n/5) + floor(n/25) + floor(n/125)+.......+floor(n/5^n)

в вашем случае n = 41


См. Комментарии ниже

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...