[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;}
浙公网安备 33010602011771号