资讯专栏INFORMATION COLUMN

【Python】计算N的阶乘末位有几个零

neu / 410人阅读

摘要:解题思路测试数据可以相当大,直接硬算是不可取的。可以观察到每遇到一个末位就会多一个零前面有用不完的偶数,每遇到一个又多一个零代码最短感想遇到与整数有关的问题要多思考数字之中有没有特别的性质可以简化问题。

前言

在CodeWar上遇到的这个题目,分享以下解题思路。

解题思路

测试数据N可以相当大,直接硬算是不可取的。可以观察到每遇到一个5末位就会多一个零(前面有用不完的偶数),每遇到一个25又多一个零……

代码
def zeros(n):
    x = n // 5
    return x + zeros(x) if x else 0 # 最短:return n // 5 + zeros(n // 5) if n // 5 else 0
感想

遇到与整数有关的问题要多思考数字之中有没有特别的性质可以简化问题。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/38129.html

相关文章

  • 【刷算法】LeetCode- 阶乘

    摘要:原题地址中国题目描述给定一个整数,返回结果尾数中零的数量。示例输入输出解释尾数中有个零说明你算法的时间复杂度应为。分析首先暴力破解法就是直接把最终的结果求出来然后看末尾有几个,但是这样做的时间复杂度肯定是太大了。 原题地址:LeetCode中国-172 题目描述 给定一个整数 n,返回 n! 结果尾数中零的数量。 示例 1: 输入: 3输出: 0解释: 3! = 6, 尾数中没有零。示...

    layman 评论0 收藏0
  • 【5 kyu】计算N阶乘末尾几个0,Number of trailing zeros of N!

    摘要:函数可解析数字或者字符串,并返回其整数部分。其中为可选参数,默认为进制。字符串首字符为数字字符串首字符为非数字和在对负数进行取整时,结果是有差异的。 原题目 Write a program that will calculate the number of trailing zeros in a factorial of a given number. http://mathworld...

    beanlam 评论0 收藏0
  • python基础教程:函数,函数,函数,重要事说三遍

    摘要:调用函数就是通过函数名再传入它需要的参数即可。递归函数递归函数就是函数自己调用自己。我们以计算一个整数的阶乘来看看递归函数是什么样子的。阶乘的公式如下它的递归函数的定义如下递归函数都有一个跳出递归的条件,在本函数中就是。 函数,是编程中很重要的一个概念。简单来说,函数是一段可重复使用的代码段,给这段代码起个名字就是函数名。在程序的任何地方都可以通过函数名来使用这段代码,这就是函数调用。...

    dreamtecher 评论0 收藏0
  • Python基础教程》第六章--读书笔记

    摘要:第六章抽象本章会介绍如何将语句组织成函数。关键字参数和默认值目前为止,我们使用的参数都是位置参数,因为它们的位置很重要,事实上比它们的名字更重要。参数前的星号将所有值放置在同一个元祖中。函数内的变量被称为局部变量。 第六章:抽象 本章会介绍如何将语句组织成函数。还会详细介绍参数(parameter)和作用域(scope)的概念,以及递归的概念及其在程序中的用途。 懒惰即美德 斐波那契数...

    AnthonyHan 评论0 收藏0
  • 001_第一部分_[Python基础]

    摘要:一基础数据类型原始类型复合类型由其他原始类型组合起来的类型运算符和表达式算术运算符加减乘除取模幂地板除的除位运算符二进制之间的运算转换成二进制数将二进制转换成十进制按位与都为才为按位或存在即为按位异或相同的为不同的为按位取反正数的补码,反 一.python基础: 数据类型: 原始类型: int float byte 复合类型: 由其他原始类型组合...

    WrBug 评论0 收藏0

发表评论

0条评论

neu

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<