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 ", cnt); 31 } 32 return 0; 33 }