博客
关于我
leetcode题解172-阶乘后的零
阅读量:791 次
发布时间:2023-01-31

本文共 618 字,大约阅读时间需要 2 分钟。

如何计算整数n的阶乘末尾零的数量

计算整数n的阶乘末尾零的数量可以通过分析阶乘中因数5的数量来实现。每对因数2和5会生成一个末尾的零,而因为阶乘中的因数2总是比因数5多,因此可以通过计算因数5的数量来确定末尾零的多少。

步骤如下:

  • 初始化一个计数器count为0
  • 初始化一个变量divisor为5
  • 进入一个循环,当divisor小于等于n时:a. 计算n除以divisor的结果并取整数部分,得到一个数b. 将这个数加到count上c. 将divisor乘以5,进入下一个循环
  • 循环结束后,返回count的值
  • 代码实现:

    function trailingZeroes($n) {    $count = 0;    $divisor = 5;    while ($divisor <= $n) {        $temp = intval($n / $divisor);        $count += $temp;        $divisor *= 5;    }    return $count;}

    例如,输入为5时,步骤如下:

    • 计算5 /5 =1,加到count得到1。
    • 然后divisor变为25,25≤5不成立,退出循环。
    • 返回count=1。

    再看n=3:

    • 3/5=0,所以count=0,循环后divisor=5,依旧为5>3不成立。
    • 返回count=0。

    这样的方法时间复杂度为O(log n),非常高效。

    转载地址:http://ahgyk.baihongyu.com/

    你可能感兴趣的文章
    laravel5.5数据库迁移入门实践
    查看>>
    Laravel5.5添加新路由文件并制定规则
    查看>>
    laravel5.5组件之 Forms & HTML 组件 (laravelcollective/html)
    查看>>
    Laravel5.5集成七牛云上传、管理(删除、查询)
    查看>>
    Laravel5.5集成极光推送_解决推送失败重推问题
    查看>>
    laravel中composer镜像服务的方式
    查看>>
    Laravel前后台+API路由分离架构(完善)
    查看>>
    Laravel渴求式加载
    查看>>
    Laravel集合探学系列——添加扩展macro策略(一)
    查看>>
    Laravel项目宝塔部署全攻略:从0到1的实战指南
    查看>>
    laravl 文件存储云存储
    查看>>
    LARGE_INTEGER
    查看>>
    Lasso回归_ElasticNet回归_PolynomialFeatures算法介绍_01---人工智能工作笔记0032
    查看>>
    LaTeX 在线编辑器(LaTeX online editors)
    查看>>
    latex不能识别eps图片
    查看>>
    LaTeX介绍-ChatGPT4o作答
    查看>>
    LaTeX伪代码编辑
    查看>>
    Latex相关文章
    查看>>
    Laurent级数与奇点分析
    查看>>
    Layout Team
    查看>>