Factorial Trailing Zeroes

本文详细介绍了如何计算给定范围内阶乘的末尾零的数量,通过分解因子的方法,重点在于计算5的个数,因为只有当因子中有2和5配对时,才会有末尾零的产生。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目的意思是求n!末尾有多少个0.

只有2*5=10,才会出现0,计算n以内有出现了多少个5。

分解因子, 当且仅当 因子中出现 一对 (2,5)时, 最后结果会增加一个 trailing zero.

1.  2的个数永远多于5个个数.

2.  计算5的个数时, 最简单的方法是 SUM(N/5^1,  N/5^2, N/5^3...)

int trailingZeroes(int n) {
        int ret = 0;
        while(n){
            n = n/5;
            ret += n;
        }
        return ret;
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值