题意:给定一个数n,求n的阶乘末尾0的个数。
思路:产生0只能是因子2*因子5,而因子中2的个数要远大于5,所以题目转化为求n!中有多少个因子5
#include <stdio.h>
#include <string.h>
int T,n;
int main(){
freopen("a.txt","r",stdin);
scanf("%d",&T);
while(T--){
int i,res = 0;
scanf("%d",&n);
for(i = 5;i<=n;i*=5)
res += n/i;
printf("%d\n",res);
}
return 0;
}
本文介绍了一种计算任意正整数n的阶乘(n!)末尾0的数量的方法。通过分析可知,产生0需要因子2与因子5的组合,由于因子2的数量远多于因子5,故只需关注因子5的数量即可。文章给出了一个简洁高效的C语言实现。
1万+

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



