题目描述
输入一个正整数n,求n!(即阶乘)末尾有多少个0? 比如: n = 10; n! = 3628800,所以答案为2
输入描述:
输入为一行,n(1 ≤ n ≤ 1000)
输出描述:
输出一个整数,即题目所求
示例1
输入
复制
10
输出
复制
2
解析:
能被5(5^1)整除的提供1个0
能被25(5^2)整除的提供2个0
能被125(5^3)整除的提供3个0
能被625(5^4)整除的提供4个0
所以 结果= n/5 + n/25 + n/125 + n/625 + ···
while(cin>>num)
{
int ans = 0;
while(num)
{
ans += num/5;
num /= 5;
}
cout<<ans<<endl;
}
本文介绍了一种计算任意正整数阶乘末尾零数量的方法。通过分析5的倍数及其幂次方贡献的零,使用循环迭代计算n!中零的总数。示例演示了输入10时,如何得出末尾有两个零的结论。
2622

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



