可以知道就是 求n!中一共有多少个5这个因子;因为2*5为10.一定会出现个零。 2的个数肯定又比5多,所以就是求5的个数
代码
#include <bits/stdc++.h>
using namespace std;
#define inf 0x3f3f3f3f
const int MAXN = 100000;
const int MAXM = 1e6+100;
const double PI = acos(-1.0);
const double eps = 1e-8;
inline int read(){
int x=0,f=1; char ch=getchar();
while (ch<'0'||ch>'9') { if (ch=='-') f=-1; ch=getchar(); }
while (ch>='0'&&ch<='9') { x=x*10+ch-'0'; ch=getchar(); }
return x*f;
}
/***************************************/
int f1(int n) //12ms
{
int ans=0;
while(n)
{
ans+=n/5;
n/=5;
}
printf("%d\n",ans);
}
int f2(int n) // 284ms
{
int ans=0;
for(int i=5;i<=n;i+=5)
{
int k=i;
while(k%5==0)
{
ans++;
k/=5;
}
}
printf("%d\n",ans);
}
int main()
{
int n;
while(~scanf("%d",&n))
{
//f1(n);
f2(n);
}
return 0;
}