题目要求计算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了。先不管了~
本文探讨了如何使用C语言和Python语言计算一个数n!的尾数中0的个数,并对比了两者在相同时间限制下的性能表现。通过质因数分解的方法,我们发现只需关注5的个数即可,从而简化了计算过程。此外,文章还揭示了为何Python在某些情况下可能会超时,提供了深入理解不同编程语言在特定任务上的性能差异。
535

被折叠的 条评论
为什么被折叠?



