0\'s
Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^
题目描述
计算整数n!(n的阶乘)末尾有多少个0。
输入
第一行输入一个数T代表测试数据个数(T<=20)。接下来T行每行1个数代表n(0<=n< 2^31)。
输出
对于每个测试数据输n!末尾有多少个0,每行输出一个结果。
示例输入
3 1 5 10
示例输出
0 1 2
提示
中国海洋大学第三届“朗讯杯”编程比赛高级组试题
来源
示例程序
{//0的个数只与2,5,10,的个数有关
//当5存在时一定会有同匹配的2存在所以只需统计
//5的个数就行了 递归是求出了5的次幂包含5的匹配数
#include<bits/stdc++.h>
using namespace std;
int cal(int n)
{//0的个数只与2,5,10,的个数有关
//当5存在时一定会有同匹配的2存在所以只需统计
//5的个数就行了 递归是求出了5的次幂包含5的匹配数
if(n<=0)
return 0;
return n/5+cal(n/5);
}
int main()
{
int T,n;
while(~scanf("%d",&T))
{
while(T--)
{
scanf("%d",&n);
printf("%d\n",cal(n));
}
}
}