关于阶乘的逻辑问题

时间:2010-03-19 23:53:52

标签: logic

我遇到了问题,无法单独解决。我的老师今天给了我一个逻辑任务,我相信你可以帮助我。

如何计算阶乘(41)末尾的零数。 (在纸上) 我知道它与编程无关,但我确信程序员可以帮助我。

提前致谢。

2 个答案:

答案 0 :(得分:7)

如果你知道这个伎俩,你甚至不需要纸张。最后的零数是它可以被10整除的次数。 。 。就素数因子化而言,这是它可被5整除的次数的最小值和它可被2整除的次数(因为我们需要一个因子两者 2和5来制作一个因子10)。但是对于阶乘,我们将每个因子都包括在小于或等于41的因子中,因此我们将得到比2的因子多得多的因子。所以我们只需要担心有多少因子为5。

因此,计算小于或等于41且可被5整除的数字: 5,10,15,20,25,30,35,40

其中有8个,但不要忘记25给我们额外的因子5,因为它可以被5整除两次。所以9个因子为5(因此9个因子为10)。

答案 1 :(得分:4)

floor(n/5) + floor(n/25) + floor(n/125)+.......+floor(n/5^n)

在你的情况下n = 41


见下面的评论