非常有意思的一道题目,读研的时候当家教,在一个小学奥数辅导班上见到过这个题,先介绍阶乘的概念,然后问结果中有多少个0,很多年过去了,再看这道题感觉很有缘分。

class Solution {
public:
    int trailingZeroes(int n) {
        int cnt = 0;
        while(n) cnt += n/5,n /= 5;
        
        return cnt;
    }
};

结果中有0,实际是判断5的个数,如果n > 25,实际上还要判断包含多少个25,因为25中包含两个5,原来加过一个,还需要再加一次,如果n >125,那么还要再加第三次,依次类推。