[2016-05-10][51nod][1003 阶乘后面0的数量]
时间:2016-05-10 09:20:52 星期二
题目编号:[2016-05-10][51nod][1003 阶乘后面0的数量]
题目大意:n的阶乘后面有多少个0?
分析:
- 5 * 2贡献一个0,所以,只需要判断你n!有多少个因数5和因数2,又因为因数2的数目比5的多,所以只需要判断因数5的个数,
- 判断因素5的个数
- 1 ~ n中 ,每隔5个数字,就有一个数字能被5整除
- 整除得到的数字中,每个5个数,除以5还能得到5的倍数
- 依次类推,需要不断除以5
- 比如 100!
- 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100
- 25 50 75 100 这4个数字,还能贡献出一个5
- 结束
遇到的问题:
#include<stdio.h>
using namespace std;
int main(){
int n,ans = 0;
scanf("%d",&n);
while(n){
ans += n / 5;
n /= 5;
}
printf("%d\n",ans);
return 0;
}