LeetCode 172. Factorial Trailing Zeroes

LeetCode 172. Factorial Trailing Zeroes

问题来源LeetCode 172. Factorial Trailing Zeroes

问题描述

Given an integer n, return the number of trailing zeroes in n!.

Note: Your solution should be in logarithmic time complexity.

问题分析

虽然这道题是Easy难度,但是刚开始的时候没有想到有什么好的解法。后来想到0只能由2*5得到。所以说判断这道题除以5就可以了。
比如10/5 =2;由2*510产生了2个0,n=25。计算n/5,可以得到5个5,分别来自其中的5, 10, 15, 20, 25,但是在25中其实是包含2个5的,这一点需要注意。

所以说除了计算n/5, 还要计算n/5/5, n/5/5/5, n/5/5/5/5, …, n/5/5/5,,,/5直到商为0,然后就和,就是最后的结果。

Java代码


public int trailingZeroes(int n) {
    int res = 0;
    while (n>0){
        res+=n/5;
        n/=5;

    }

    return res;
}

LeetCode学习笔记持续更新

GitHub地址 https://github.com/yanqinghe/leetcode

CSDN博客地址 http://blog.csdn.net/yanqinghe123/article/category/7176678

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值