前言:
这题有黄题吗?建议降红
题目大意:求1的阶乘+...+n的阶乘末尾有几个0
思路:
一个 0 肯定是由一个 2 和一个 5 相乘得来的
而且 0 的个数肯定是 2 和 5 之间数目较少的那一个的个数
我们是求它的阶乘的累乘,
所以 5 的个数一定要小于 2 的个数
那么末尾 0 的个数就是 5 的个数
十年OI一场空,_____________
代码:
#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,a,cnt=0,ans=0;
signed main(){
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
cin>>n;
for(int i=1;i<=n;++i){
a=i;
while(a%5==0){
++cnt;
a/=5;
}
ans+=cnt;
}
cout<<ans;
return 0;
}
结尾:
跪求关注,关注必回关(忘关私信
最后安利一下我的团队