首页 > 其他 > 详细

N的阶乘末尾有多少个0

时间:2016-08-24 00:47:49      阅读:236      评论:0      收藏:0      [点我收藏+]

N的阶乘(N!)中的末尾有多少个0?

N的阶乘可以分解为: 2的X次方,3的Y次方,4的5次Z方,.....的成绩。由于10 = 2 * 5,所以M只能和X和Z有关,每一对2和5相乘就可以得到一个10,于是M = MIN(X,Z),不难看出X大于Z,因为被2整除的频率比被5整除的频率高的多。

要计算Z,最直接的方法就是求出N的阶乘的所有因式(1,2,3,...,N)分解中5的指数。然后求和

 1 int fun1(int n)
 2 {
 3     int num = 0;
 4     int i,j;
 5     
 6     for (i = 5;i <= n;i += 5)
 7     {
 8         j = i;
 9         while (j % 5 == 0)
10         {
11             num++;
12             j /= 5;
13         }
14     }
15     
16     return num;
17 }

 5是+1,10里面有1一个5,15=3*5有一个5……25是5*5有两个5

N的阶乘末尾有多少个0

原文:http://www.cnblogs.com/raichen/p/5801292.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!