关闭

LeetCode:Factorial Trailing Zeroes

标签: LeetCodeFactorial Trailing Z
314人阅读 评论(0) 收藏 举报
分类:

Factorial Trailing Zeroes

Total Accepted: 42370 Total Submissions: 139281 Difficulty: Easy

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

Note: Your solution should be in logarithmic time complexity.

Credits:
Special thanks to @ts for adding this problem and creating all test cases.

Subscribe to see which companies asked this question

















思路:

1.求n!中后缀0的个数。

2.n!后缀0的个数由(2^i)*(5^j)得来。

3.因此,要求min(i,j)。

4.j<=i,直观的来看i是逢2进1,j是逢5进1。因此,min(i,j)==j。

5.即求n!能被5整除的个数,即k=n/5 + n/25 + n/125 + ... + n/(2^j),其中j<=n。


代码:

class Solution {
public:
    int trailingZeroes(int n) {
        int x = 5;
        int ret = 0;
        while(x <= n) {
            ret += n/x;
            x *= 5;
        }
        return ret;
    }
};

或:

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


0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

【LeetCode-面试算法经典-Java实现】【070-Set Matrix Zeroes(矩阵置零)】

【070-Set Matrix Zeroes(矩阵置零)】【LeetCode-面试算法经典-Java实现】【所有题目目录索引】原题  Given a m x n matrix, if an eleme...
  • DERRANTCM
  • DERRANTCM
  • 2015-08-09 06:34
  • 2259

数论基础:阶乘的后尾0个数Trailing Zeroes (III)

阶乘的定义:N! = 1*2*…*N 题意:给你一个后尾0的个数,要你求,这可能是哪个数的阶乘,只求其最小值分析:1.这个 10=2*5 且 任意连续的5个数值以内,2的倍数一定大于5的倍数 所...
  • u011412840
  • u011412840
  • 2017-12-21 22:14
  • 49

Trailing Zeroes (III) (数论(二分查找值,规律))

题目来源:https://vjudge.net/problem/LightOJ-1138 【题意】 求一个尽可能小的数n,其阶乘的后面有q个0。 【思路】 一开始推得数学公式,然后想错了,,,...
  • duan_1998
  • duan_1998
  • 2017-05-19 21:19
  • 151

【LightOJ】1138 - Trailing Zeroes (III)(数论,二分法)(POJ-1401类型题)

D - D Time Limit:2000MS     Memory Limit:32768KB     64bit IO Format:%lld & %llu Submit...
  • wyg1997
  • wyg1997
  • 2016-03-22 16:20
  • 206

LeetCode 283 Move Zeroes(移动所有的零元素)

翻译给定一个数字数组,写一个方法将所有的“0”移动到数组尾部,同时保持其余非零元素的相对位置不变。例如,给定nums = [0, 1, 0, 3, 12],在调用你的函数之后,nums应该变为[1, ...
  • NoMasp
  • NoMasp
  • 2015-12-26 19:07
  • 4207

Swift学习之十四:闭包(Closures)

/* 闭包(Closures) * 闭包是自包含的功能代码块,可以在代码中使用或者用来作为参数传值。 * 在Swift中的闭包与C、OC中的blocks和其它编程语言(如Python)中的lamb...
  • woaifen3344
  • woaifen3344
  • 2014-06-09 19:09
  • 29373

如何打patch 及git 打patch 失败的处理方法

最近分配了一些打patch的任务。打的那个叫稀巴烂。想必对我很失望。这个过程中学到了如何打patch. 正常来说我们打的git生成的标准patch如果没有没有问题那很好打。 只需要进入patch对应的...
  • RonnyJiang
  • RonnyJiang
  • 2017-01-11 15:46
  • 2918

【LeetCode-面试算法经典-Java实现】【所有题目目录索引】

【博文总目录>>>】 LeetCode算法题典   LeetCode是一个准备面试非常有用的网站,是非常值得去的地方,里面都是一些经典的面试题,这些题目在Google,Microsof...
  • DERRANTCM
  • DERRANTCM
  • 2015-07-16 06:27
  • 24698

LeetCode 问题汇总(算法,难度,频率)

Id Question Difficulty Frequency Data Structures Algorithms 1 T...
  • sbitswc
  • sbitswc
  • 2014-03-13 11:58
  • 12088

Netty 学习(6)Netty Example 计算序列的阶乘

FactorialClient.java Sends a sequence of integers to  FactorialServer to calculate  the factorial of...
  • yang382197207
  • yang382197207
  • 2014-01-22 16:32
  • 1257
    个人资料
    • 访问:379213次
    • 积分:6673
    • 等级:
    • 排名:第4147名
    • 原创:318篇
    • 转载:1篇
    • 译文:0篇
    • 评论:34条
    博客专栏
    最新评论