思路:
观察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));
}