阶乘后的零是因为5乘以一个偶数的结果,所以5的个数,决定了阶乘后零的个数。
但是怎样查看阶乘中5的个数呢,要根据因式分子
例如n=30,30!=1*2*3*4*5*6*7*8*9*10*...*30;
里面有多少个为5的因式分子的,先看里面有多少个元素可以整除5,有5,10,15,20,25,30共6个这个6是怎么求出来的呢?
6=30/5;然后在这六个元素里分别提取分式因子5,可以提取出六个,提取后变成1,2,3,4,5,6,然后看这六个里面有多少个元素可以整除5,6/5=1,所以有一个元素5还可以继续提取出一个因式分子5,这样就可以看出30!中总共包括7个因式分子5.,所以有7个零
代码如下:
1 class Solution {
2 public:
3 int trailingZeroes(int n) {
4 int num=0;
5 while(n)
6 {
7 num+=n/5;
8 n=n/5;
9 }
10 return num;
11 }
12 };