资讯专栏INFORMATION COLUMN

【5 kyu】计算N的阶乘末尾几个0,Number of trailing zeros of N!

beanlam / 2192人阅读

摘要:函数可解析数字或者字符串,并返回其整数部分。其中为可选参数,默认为进制。字符串首字符为数字字符串首字符为非数字和在对负数进行取整时,结果是有差异的。

原题目

Write a program that will calculate the number of trailing zeros in a factorial of a given number.

http://mathworld.wolfram.com/...

$$N! = 1 * 2 * 3 * 4 ... N$$

zeros(12) = 2 # 1 2 3 .. 12 = 479001600
that has 2 trailing zeros 4790016(00)
Be careful 1000! has length of 2568 digital numbers.

My solution

只有当有2*5出现的时候,末尾才有可能出现0,而2的数量远大于5,所以我们只需要计算在N!中,有多少个5.

function zeros (n) {
  var num = 0;
  while ( n > 4 ) {
    n = Math.floor(n/5);
    num += n;
  }
  return num;
}
Math.floor()parseInt() 的区别

在上面的解答中,用到了Math.floor()对数字进行向下取整,我们知道parseInt()也能达到同样的效果,那两者有什么区别吗?

1. 功能不同

Math.floor(x):对数字进行向下取整。

parseInt(str, [radix]):函数可解析数字或者字符串,并返回其整数部分。其中radix为可选参数,默认为10进制。

Math.floor("123");    // NaN
parseInt("123");       // 123

// 字符串首字符为数字
parseInt("123a");       // 123

// 字符串首字符为非数字
parseInt("a123");      // NaN

2. Math.floor()parseInt()在对负数进行取整时,结果是有差异的。

Math.floor(-1.3);    // -2
parseInt(-1.3);      // -1

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

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

相关文章

  • [Leetcode] Factorial Trailing Zeroes 末尾

    摘要:迭代法复杂度时间空间思路技巧在于,每个数会产生一个。为什么呢试想,前个数中有一个一个,相乘有一个,后个数中有一个,又有一个。以此类推,每个数会有一个。代码阶乘中有多少,结果就有多少个 Factorial Trailing Zeroes Given an integer n, return the number of trailing zeroes in n!. Note: Your ...

    qpwoeiru96 评论0 收藏0
  • [LeetCode/LintCode] Factorial Trailing Zeros

    摘要:是的倍数,先找有多少个个,然后找多少个个,补上,然后多少个个,补上个个个 Problem Write an algorithm which computes the number of trailing zeros in n factorial. Challenge 11! = 39916800, so the output should be 2 Note i是5的倍数,先找有多少个...

    Java_oldboy 评论0 收藏0
  • SICP Python 描述 3.2 函数和所生成过程

    摘要:函数和所生成的过程来源译者飞龙协议函数是计算过程的局部演化模式。在这一章中,我们会检测一些用于简单函数所生成过程的通用模型。也就是说,递归函数的执行过程可能需要再次调用这个函数。 3.2 函数和所生成的过程 来源:3.2 Functions and the Processes They Generate 译者:飞龙 协议:CC BY-NC-SA 4.0 函数是计算过程的局部演化...

    lolomaco 评论0 收藏0
  • 高精度数学运算

    摘要:使用,保证精度的同时,能精准的进行四舍六入计算。类精确的数学运算使用来实现精准度因为精度的原因构造方法的结果有一定的不可预知性,例如因此建议使用。算法规则四舍六入五考虑,五后非零就进一,五后皆零看奇偶,五前为偶应舍去,五前为奇要进一。 四舍六入计算 算法规则: 四舍六入五考虑, 五后非零就进一, 五后皆零看奇偶, 五前为偶应舍去, 五前为奇要进一。 使用BigDecimal,保证精度的...

    liaosilzu2007 评论0 收藏0
  • 【7 kyu】Descending Order

    摘要:若提供比较函数返回值返回值不变返回值交换位置升序排列后,再利用反序将字符串转换为可选参数,表示进制。规定使用,但是并不是所有的浏览器都遵循这个规定。因此,永远都要明确给出参数的值。若传入的字符串中含有非数字字符,将返回。 原题目 Your task is to make a function that can take any non-negative integer as a ar...

    ls0609 评论0 收藏0

发表评论

0条评论

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