给定一个整数 n ,返回 n! 后果中尾随零的数量。
提醒 n! = n (n - 1) (n - 2) ... 3 2 1
//首先,一个数只有因子含有10才会有尾随0//其次,10能够由2和5两个质数相乘失去//之后,因为任何一个整数的阶乘蕴含因子2的个数都大于因子5的个数//所以,最终只须要统计n!含有多少个因子5//拿1000!举例,1~1000,其中含有1000/5,即200个5的倍数//若这200个数都含有1个因子5,那间接返回200就好//然而含有因子5的个数有不止一个的//所以须要计算含有2个的,也就是能被25整除的//以此类推再计算含有3个的,直到被除数大于n完结public int trailingZeroes(int n) { int res = 0, tmp = 5; while (tmp <= n) { res += n / tmp; tmp *= 5; } return res; }