码迷,mamicode.com
首页 > 其他好文 > 详细

阶乘后面0的数量

时间:2015-10-08 23:03:59      阅读:184      评论:0      收藏:0      [点我收藏+]

标签:

题目描述:

n的阶乘后面有多少个0?

6的阶乘 = 1*2*3*4*5*6 = 720,720后面有1个0。
Input
一个数N(1 <= N <= 10^9)
Output
输出0的数量

每个数阶乘末尾的零是由前面阶乘数字中的因子2和因子5相乘而造成的,又因为5比2多,所以只需考虑5的个数。
每隔5个数,会产生一个0,如5、10、15...;
每隔25个数,会多产生一个0,即两个0,如25/50/75...;
每隔125个数,会多产生一个0,即三个0,如125、625...等等。
即每次将除以5后的数相加即可得到阶乘后面的数量。

代码如下:
 1 #include<stdio.h>
 2 int main (void)
 3 {
 4     unsigned int a, b = 0;
 5     scanf("%d", &a);
 6     while(a != 0){    
 7         a = a / 5;
 8         b += a;
 9     }
10     printf("%d", b);
11     return 0;
12 }

 

阶乘后面0的数量

标签:

原文地址:http://www.cnblogs.com/clairvoyant/p/4862568.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!