Description
求出n!的末尾有多少个0(连续的)。
每组测试点有t个测试数据,输入格式为第一行一个t,后面2~t+1行每行一个n,输出其结果。
Sample Input
6 3 60 100 1024 23456 8735373
Sample Output
0 14 24 253 5861 2183837
题解:
求一个数阶乘的末尾0的个数。
10=2*5,显然2的个数总比5多,
即转化为,求阶乘分解以后有几个5。
#include<iostream> #include<cmath> #include<cstdio> #include<algorithm> #include<cstring> using namespace std; int main() { int t,n; cin>>t; while(t--) { cin>>n; long long sum=0; while(n) { sum+=n/5;//第一遍筛阶乘的因数中有几个五的倍数 n/=5;//用来循环筛下一次 } cout<<sum<<endl; } return 0; }