题目描述:
计算n!尾数为0的个数,如15!=1307674368000 个数为3
算法思想:
- n! >= 2^a*5^b ,则尾数为0的个数为min{a,b},实际上结果就是b
- 注意5^n
全部代码:
#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
using namespace std;
// 求阶乘尾数为0的个数
int main(){
int n=0,res=0;
cin>>n;
for(int i=5;i<=n;i+=5){
int k = i;
while(k/5){
k = k/5;
res++;
}
}
cout<<res;
return 0;
}