【算法】计算出n阶乘中尾部零的个数

思路:

观察1-20阶乘的结果,观察尾数为0的分布情况
发现有一个5就会出现一个0
其中5!(有一个5),10!(有两个5)
5!=120(一个0)
10!=3628800(两个0)

#include <stdio.h>

long trailingZeros(long n)
{
	long count=0;
	long temp=n/5;
	while (temp!=0) 
	{
		count+=temp;
		temp/=5;
	}
	return count;
}

void main()
{
	long n;
	printf("请输入一个数:");
	scanf("%d",&n);
	printf("阶乘有%d个零!\n",trailingZeros(n));
}

猜你喜欢

转载自blog.csdn.net/qq_23996157/article/details/84928658
今日推荐