问题:100! 后面有多少个0
先正常的算:
程序:
因为只需要2,5. 所以求2,5的总的因子的个数即可
复杂度 O(nlogn)
代码如下
#include<iostream>
#include<algorithm>
using namespace std;
int n;
int p2;
int p5;
void getNum(int x){
while(x){
if(x%2==0){
x/=2;
p2++;
}else{
break;
}
}
while(x){
if(x%5==0){
x/=5;
p5++;
}else{
break;
}
}
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
getNum(i);
}
int ans = min(p2,p5);
cout<<ans<<endl;
return 0;
}
输入
100
输出:
24