求n!末尾0的个数

看了这篇文章的百分之九十九都顶了,还有百分之一的人默默点了转发,并且在转发的时候含泪说了一句:不转不是中国人 

问题大意,给一个数n,求出n! 后面0的个数。

解题思路:

显然可以知道后面0的个数取决于约数5的个数,一个递推思路:

1、 每隔5个,会产生一个0,比如 5, 10 ,15,20.。。 
2 、每隔 5×5 个会多产生出一个0,比如 25,50,75,100 

3 、每隔 5×5×5 会多出一个0,比如125.

4、…………

上代码:

ll Zero(ll n){
	ll ans = 0;
	while(n){
		ans += n / 5;
		n /= 5;
	}
	return ans;
}


猜你喜欢

转载自blog.csdn.net/swunhj/article/details/79825971