链接:https://www.nowcoder.com/acm/contest/93/E
来源:牛客网
题目描述
这个问题很简单,就是问你n的阶乘末尾有几个0?
输入描述:
输入第一行一个整数T(1<=T<=100),代表测试组数
接下来T行,每行一个数n(1<=n<=10^9)
输出描述:
对于每组测试数据,输出对应答案
输入例子:
5
1
2
3
4
5
输出例子:
0
0
0
0
1
-->
示例1
输入
5
1
2
3
4
5
输出
0
0
0
0
1 只有2*5能得到0,而5出现的频率又小于2,即计算5出现的次数。
ans = n/5+n/(5^2)+n/(5^3)……
其中n/5表示不大于n的数中能被5整除的数的个数贡献1个5;n/25再贡献一个;n/125在贡献一个……
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cstdlib>
#include<cmath>
#include<vector>
#include<stack>
#include<queue>
#define lson l, m, rt<<1
#define rson m+1, r, rt<<1|1
#define IO ios::sync_with_stdio(false);cin.tie(0);
#define INF 0x3f3f3f3f
#define MAXN 500010
const int MOD=1e9+;
typedef long long ll;
using namespace std;
ll n, x, cnt;
ll solve(ll x)
{
ll cnt=;
while(x){
cnt += x/;
x /= ;
}
return cnt;
}
int main()
{
IO;
while(cin >> n){
for(int i = ; i < n; i++){
cin >> x;
cout << solve(x) << endl;
}
}
return ;
}