nyoj 84-阶乘的0 (规律题)

84-阶乘的0


内存限制:64MB 时间限制:3000ms 特判: No
通过数:7 提交数:9 难度:3

题目描述:

计算n!的十进制表示最后有多少个0

输入描述:

第一行输入一个整数N表示测试数据的组数(1<=N<=100)
每组测试数据占一行,都只有一个整数M(0<=M<=10000000)

输出描述:

输出M的阶乘的十进制表示中最后0的个数
比如5!=120则最后的0的个数为1

样例输入:

6
3
60
100
1024
23456
8735373

样例输出:

0
14
24
253
5861
2183837

PS:
  观察数据可以发现,我们只需要求改组数据阶乘结果中有多少个5,那么末尾就有多少个零

C/C++代码实现:
 1 #include <iostream>
 2 #include <algorithm>
 3 #include <cstring>
 4 #include <cstdio>
 5 #include <cmath>
 6 #include <stack>
 7 #include <map>
 8 #include <queue>
 9 #include <set>
10 #include <climits>
11 
12 using namespace std;
13 const int MAXN = 35;
14 const int MY_MAX = INT_MAX;
15 const int EPS = 1e-8;
16 int N, M;
17 
18 int main()
19 {
20     scanf("%d", &N);
21     while(N --)
22     {
23         scanf("%d", &M);
24         int cnt = 0;
25         while (M)
26         {
27             cnt += M / 5;
28             M /= 5;
29         }
30         printf("%d\n", cnt);
31     }
32     return 0;
33 }

猜你喜欢

转载自www.cnblogs.com/GetcharZp/p/9127402.html