题目要求计算n!的尾数中0的个数。对一个数n进行质因数分解,只有2和5相乘才能使结果中出现0,所以可以看分解的结果中2和5的个数即可,而2的个数明显会多于5,所以只要计算出5的个数即可。具体算法为用n不断除以5,直到商为0为止,然后再把之前的商都加起来。如算100!,则100/5=20, 20/5=4, 4/5=0,那么最终结果就为20+4+0=24.
#include <stdio.h>
int main()
{
int T,N,sum;
scanf("%d",&T);
while(T--)
{
scanf("%d",&N);
for(sum=0;N;N/=5,sum+=N);
printf("%d\n",sum);
}
return 0;
}
T=input()
while T:
N=input()
sum=0
while N:
N/=5
sum+=N
print sum
T-=1
代码是一样的,但是python会超时,觉得很神奇,时间限制是6s的,C用了0.27s,不知道python怎么就TLE了。先不管了~