首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在阶乘之后有多少个尾随零?

在阶乘之后有多少个尾随零?
EN

Stack Overflow用户
提问于 2019-11-18 19:11:49
回答 1查看 161关注 0票数 1

我试图完成以下编程任务:

编写了一个程序,该程序将计算给定数字的阶乘中尾随零的数目。

N =1*2*3**N

小心1000!有2568位数

有关更多信息,请参见:http://mathworld.wolfram.com/Factorial.html

示例:

零(6)=1 -> 6!=1*2*3*4*5*6= 720 ->1尾随零

零(12)=2 -> 12!= 479001600 ->2个尾随零

我感到困惑,因为我的一个示例测试显示:expect_equal(0(30),7)

我可能误解了任务,但是当输入为30时,尾随的7 0从何而来?

随着科学符号的开启,我明白了:

代码语言:javascript
运行
复制
2.6525286e+32

关了它,我就明白了:

代码语言:javascript
运行
复制
265252859812191032282026086406022
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-18 23:44:42

您正在经历的是这样的结果:

但在这种情况下,计算阶乘来找出尾随零的数目并不是那么有效。

我们可以在一个数字中计算5-因子的数量(因为总是有足够的2-因子与它们配对并创建10-因子)。这个函数通过计算给定数字中的5-因子,给出了阶乘的尾随零。

代码语言:javascript
运行
复制
tailingzeros_factorial <- function(N){

  mcount = 0L
  mdiv = 5L
  N = as.integer(N)

  while (as.integer((N/mdiv)) > 0L) {

    mcount = mcount +  as.integer(N/mdiv)
    mdiv = as.integer(mdiv * 5L)
  }
  return(mcount)
}
代码语言:javascript
运行
复制
tailingzeros_factorial(6)
 #> 1

tailingzeros_factorial(25)
 #> 6

tailingzeros_factorial(30)
 #> 7
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58921357

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档