之前的思路是根据1-10,10个数一个区间分析一个区间产生多少个零,发现这个方法不靠谱,随后阅读资料发现以下思路:

我们会发现一个因子2和因子5组合产生一个0,这样我们只需统计1到n有多少个因子对,即n!的尾随零个数,因子2的个数比因子5的个数多,因此我们只需统计出因子5的个数即可,如

统计一次5的倍数 (5,10,15,20,25,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100)= 20

统计一次25的倍数(因为25的倍数有两个5的因子,所以再统计一次)(25,50,75,100) = 4

统计一次125的倍数(125的倍数由3个5的因子,所以再统计一次,以此类推)(nil)

所以100!的尾随零个数为24个

public class Solution {
    /*
     * @param n: An integer
     * @return: An integer, denote the number of trailing zeros in n!
     */
    public long trailingZeros(long n) {
        // write your code here, try to do it without arithmetic operators.
        long total = 0;
        if(n<0)
            return -1;
        for(long i = 5;i<=n;i = i*5){
            total += n/i;
        }
        return total;
    }
}

计算n的阶乘有多少个尾随零相关推荐

  1. 求阶乘的第一个非零数字_查找数字阶乘中的尾随零

    求阶乘的第一个非零数字 Problem statement: 问题陈述: Find the number of trailing zeros in n! (Where, n is the given ...

  2. CareerCup 17中等难题 Q17.3 阶乘尾随零个数

    题目: 设计一个算法,算出n阶乘有多少个尾随零. 分析: 就是算,阶乘中总共有几个 2*5,又因为2总是比5多,所以算出有几个5相乘就可以. 注意:25算两个,因为5*5, 125算三个,因为5*5* ...

  3. 算一算N阶乘的尾随零个数

    问题描述很简单: 求解N阶乘的尾随零个数 而所谓尾随零个数,即是从个位数开始,数字连续为0的个数. 譬如: 3!(阶乘符号,下同) = 3 * 2 * 1 = 6, 尾随零个数为0 5! = 5 * ...

  4. 100的阶乘有多少0

    100的阶乘有多少0 问题分析与算法设计 想要计算100的阶乘有多少0,得知道结尾0是怎么形成的.结尾0是(2×5)的倍数相乘得来的.所以我们只要计算有多少对(2×5)即可. 计算出在0-100整数中 ...

  5. 尾随零 - LintCode

    描述 给定一个整数n,返回n!(n的阶乘)的尾随零的个数. 您的解法时间复杂度应为对数级别. 思路 由于2和5可以形成0,且2的个数总是多于5,所以尾部0的个数是由0~n中包含5的个数决定的.譬如,5 ...

  6. LintCode 题目:尾随零

    URL:https://www.lintcode.com/problem/factorial-trailing-zeroes/description 描述 给定一个整数n,返回n!(n的阶乘)的尾随零 ...

  7. LintCode 1347. 尾随零 JavaScript算法

    描述 给定一个整数n,返回n!(n的阶乘)的尾随零的个数. 说明 您的解法时间复杂度应为对数级别. 样例 - 样例1输入: n = 5 输出: 1 解释: 1*2*3*4*5=120- 样例2输入: ...

  8. python计算n阶乘中尾部零的个数_(Java)设计一个算法,计算出n阶乘中尾部零的个数...

    展开全部 long 类型对大数阶乘来e68a8462616964757a686964616f31333365633963说存储范围大小,强行使用会溢出,可以使用 BigDecimal. 代码如下:im ...

  9. 172. 阶乘后的零 尾随零

    原题如下: 给定一个整数 n ,返回 n! 结果中尾随零的数量. 提示 n! = n * (n - 1) * (n - 2) * ... * 3 * 2 * 1 0 <= n <= 104 ...

最新文章

  1. 实验室培养的迷你大脑,产生了脑电波...
  2. 如何理解Android中的xmlns
  3. python是一种语言吗-Python是一种什么样的编程语言?解释?编译?汇编?机械?...
  4. 园艺专业相关计算机知识,2017年秋园艺概论(专业选修)
  5. hibernate教程--常用配置和核心API
  6. iOS 多线程基础之 NSThread
  7. 使用 Azure PowerShell 管理 Azure 虚拟网络和 Windows 虚拟机
  8. Flink countWindow窗口
  9. 糟糕程序员的20个坏习惯
  10. 云计算教程学习入门视频课件:云计算基础服务组件讲解
  11. 百度地图java批量获得经纬度_从百度地图API接口批量获取地点的经纬度
  12. percona 5.7.11root初始密码设置
  13. 在c#中使用全局快捷键
  14. Mismatch between array dtype (‘<U40‘) and format specifier (‘%.18e‘)
  15. Data Visualization [--0]
  16. Zigbee 协议栈
  17. c语言运行的快捷键是什么,c语言执行命令快捷键是什么??
  18. ubuntu14.04+cuda8.0(gtx1080)下tensorflow的安装
  19. 人是Web3最终进化
  20. 硬件(esp32),服务器(python),前端,三端联调的电子琴项目,可以实现多种乐器奏乐。

热门文章

  1. 快学起这4类智能图形,玩转PPT!
  2. 华为手机qq下载的文件在哪里
  3. 微信视频号可以换绑管理员了
  4. 汤家凤线性代数强化阶段笔记并标记重点
  5. 备案被骗——骗子QQ487845970
  6. 基于Python实现本地音乐播放器的制作
  7. axure详细教程 做app
  8. 关于达梦认证,你想知道的都在这里了
  9. 成长,没你想象得那么迫切
  10. 怎么在WEB页面上读取身份证信息