LeetCode 172. Factorial Trailing Zeroes

来源:互联网 发布:西安建筑软件班 编辑:程序博客网 时间:2024/06/18 11:04

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

原创粉丝点击