计算n的阶乘末尾有多少个0
2个回答
展开全部
乘积末尾的0的个数依赖于因子中的2的个数和5的个数。对于阶乘来说,每2个数字就至少有一个2的因子,所以2的因子是足够的。5的因子相对少些,至少连续5个数才能保证一定出现一个。
注意,这里连续5个数保证出现一个5的因子是指最少的情况。比如1,2,3,4,5,这就只会出现一个。
intnzerooffactorial(intn){
intzerocnt
=
0;
intmultipleof5
=
5;
while
(n
>=
multipleof5)
{
zerocnt
+=
n/multipleof5;
multipleof5
*=
5;
}
returnzerocnt;}
e.g.
nzerooffactorial(81)
=
19
注意,这里连续5个数保证出现一个5的因子是指最少的情况。比如1,2,3,4,5,这就只会出现一个。
intnzerooffactorial(intn){
intzerocnt
=
0;
intmultipleof5
=
5;
while
(n
>=
multipleof5)
{
zerocnt
+=
n/multipleof5;
multipleof5
*=
5;
}
returnzerocnt;}
e.g.
nzerooffactorial(81)
=
19
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询