1 //n!的末尾有几个0,其实就是求5的倍数有几个,25的倍数有几个,……
如: 50
5: 5 10 15 20 25 30 35 40 45 50
25: 25 50
12个
2 int f(int n)
3 {
4 int num=0;
5 while(n){
6 num+=n/5;
7 n/=5;
8 }
9 return num;
10 }
牛客小白月赛5 D
题目描述
输入描述:
输入数据共一行,一个正整数n,意义如“问题描述”。
输出描述:
输出一行描述答案:
一个正整数k,表示S的末尾有k个0
示例1
说明
鸣谢真·dalao Tyxao
1 ll ans=0;
2 scanf("%d",&n);
3 int i;
4 for(i=5;i<=n;i*=5){
5 for(int j=1;j*i<=n;j++){
6 ans+=(n+1-j*i);//i出现了n+1-i次
7 }
8 }
9 printf("%lld
",ans);