题目链接:https://qduoj.com/problem/151/点击打开链接
别骂了,不会让你爆零的
发布时间: 2017年6月3日 18:46 最后更新: 2017年6月3日 18:49 时间限制: 1000ms 内存限制: 128M
(n!%(10^k))==0.
已知n,求能使上式成立的k的最大值。
第一行输入测试用例的个数T(0<t<=100)。对于每一个测试用例输入一行只有一个数n(0<=n<=10^18)
对于每一个测试用例在一行中输出一个数,代表能使上式成立的k的最大值。
3 3 5 20
0 1 4
思考观察发现 其实就是取因子中所有2和5的个数 而2比5的个数多 所以只需计算5的个数 使2*5=10让k++
代码简短 需要思考
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include<algorithm>
#include <math.h>
#include <string.h>
#include <limits.h>
#include <string>
#include <queue>
#include <stack>
using namespace std;
int main()
{
int t=0;
scanf("%d",&t);
while(t--)
{
long long int n=0;
long long int num=0;
scanf("%lld",&n);
while(n!=0)
{
num+=n/5;
n=n/5;
}
printf("%lld\n",num);
}
}