NYOJ 84 阶乘的0

原题链接

由于10可以分解为质因数2 * 5,所以可以将原阶乘分解求出2和5因子的数量,则末尾0的个数就是2和5中数量较少的那个的数量。

附ac代码:

#include <stdio.h>

int main(){
	int t, n;
	scanf("%d", &t);
	while(t-- && scanf("%d", &n)){
		int a = 0, b = 0; //分别存储质因子‘2’和、‘5’的数量
		int x = n; //副本
		while(x)
			a += (x /= 2);		
		while(n)
			b += (n /= 5);
		printf("%d\n", a < b ? a : b);
	}
	return 0;
}


posted on 2014-02-12 10:50  长木Qiu  阅读(133)  评论(0编辑  收藏  举报