Factorial
题目链接
题目大意
题目扯了一大堆没用的,最后说让你求 N! 末尾有多少零。
题解
末尾想产生零只有可能是2*5,所以我们找出min(num2,num5)就行了。
然而很明显2的数量肯定比5多,所以我们这里只用求5的数量就行了,所以我们用N整除5,25,125….最后加进答案中就行了。
代码
#include <iostream>
#include <cstdlib>
#include <cstdio>
#include <cstring>
#define LL long long
using namespace std;
LL n,ans;
int T;
int main()
{
scanf("%d",&T);
while(T--)
{
ans=0;
scanf("%I64d",&n);
LL i=5;
while (i<=n)
{
ans+=n/i;
i*=5;
}
printf("%I64d\n",ans);
}
return 0;
}