【每天一道编程系列-2018.3.14】—— Trailing Zeros

本文介绍了一种高效算法,用于计算n阶乘结果中尾部零的数量。该算法采用除以5累加的方式,时间复杂度为O(logN),适用于快速解决相关问题。

【题目描述】



 O(log N) time

Write an algorithm which computes the number of trailing zeros in n factorial.

Example

11! = 39916800, so the out should be 2



【题目大意】



设计一个算法,计算出n阶乘中尾部零的个数



【本题答案】


package blog;

/**
 * @author yesr
 * @create 2018-03-14 下午10:44
 * @desc
 **/
public class Test0314 {
    /*
     * param n: As desciption return: An integer, denote the number of trailing
     * zeros in n!
     */
    public long trailingZeros(long n) {
        // write your code here
        long count = 0;
        long temp=n/5;
        while (temp!=0) {
            count+=temp;
            temp/=5;
        }
        return count;
    }
}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值