例题:
10000的阶乘是一个很大的数字,但这一次我们关心的不是这个数字是多少,而是这个数字从个位开始向左直到第一个不为零的数字一共有多少个零。比如5的阶乘是120,
有1个零,10的阶乘是3628800,有2个零。现给你若干个数,这些数各有多少个零。
输入格式 第一行为数N,表示有多少个数
此后一行一个整数(数的范围为1至1000000000)
输出格式 对每一个整数,输出该数阶乘中按题意要求的需的个数
输入样例 6
3
60
100
1024
23456
8735373
输出样例 0
14
24
253
5861
2183837
标程:
#include <stdio.h>
int main()
{int n,i,x,a[100]={0};
scanf("%d",&n);
for(i=0;i<n;i++)
{scanf("%d",&x);
for(;x!=0;x/=5)a[i]+=x/5;
}
for(i=0;i<n;i++)
printf("%d\n",a[i]);
return 0;
}
思路:
自行百度阶层中多少个0的数学规律,简单来讲就是:该数(int)不断除5直至等于0,商的和即为阶层中 0 的个数。