问题标签 [factorial]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
7310 浏览

c++ - 为什么阶乘递归函数的效率低于正常的阶乘函数?

我有两个函数可以计算数字 n 的阶乘。我不明白为什么“正常”函数需要更少的时间来计算数字 n 的阶乘。这是正常功能:

这是递归函数:

这应该更省时,因为它不会创建新变量,并且它执行的操作更少。虽然正常函数确实使用了更多的内存,但它更快。

我应该使用哪一个,为什么?

PS:我需要使用 double 来计算 e^x 的泰勒级数。

0 投票
4 回答
4425 浏览

java - 找出数字 100 中的数字之和!(我的while循环不会停止)

我一直在尝试解决Project Euler 中的问题 20 :

嗯!表示 n (n 1) ... 3 * 2 * 1 例如,10!= 10 * 9 ... 3 * 2 * 1 = 3628800,以及数字 10 中的数字之和!是 3 + 6 + 2 + 8 + 8 + 0 + 0 = 27。求数字 100 中的数字之和!

这是我到目前为止想出的。我已经用这段代码得到了正确的答案(648),但是我有点 OC,因为我的代码是一个无限循环。在 while 循环内结果变为 0 后,它就不会停止。有人可以帮我解决这个问题吗?

0 投票
4 回答
2554 浏览

function - 如何在scala中优化这个短阶乘函数?(创建 50000 个 BigInt)

我已经比较了 scala 版本

到python版本

事实证明,scala 版本比 python 版本花费了大约 10 倍的时间。

我猜,一个很大的区别是 python 可以使用它的原生 long 类型,而不是为每个数字创建新的 BigInt 对象。但是scala中有解决方法吗?

0 投票
7 回答
278 浏览

java - 零阶乘递归返回 1

我怎样才能让这个递归方法在不测试基本情况的情况下返回1调用0!,即不执行if-else0 和 1。

我不想检查基本情况。这可能吗?

0 投票
1 回答
629 浏览

format - octave 打印所有阶乘数

如何打印出100的所有数字!在八度?

八度:1> 阶乘(100)ans = 9.3326e+157

下面的命令给出了错误的答案:

octave:4> printf("%u\n",factorial(100)) 93326215443947553183793338240612302366006877769275129529769934567734921397913148008797092443225880267680360266584467988186500321788890593731926090238149001216

0 投票
6 回答
375 浏览

c++ - 理解递归,C++

对于下面的代码,谁能告诉我,如果基本情况(n==0)的返回值为 0,为什么函数总是返回“0”?我知道为了更正这个函数,我只需要用“return 1”替换“return 0”,但是,我试图理解为什么它在下面的基本情况下返回 0。

谢谢你的帮助

编辑:希望下面的代码没有逻辑错误......

0 投票
4 回答
587 浏览

math - 标准阶乘函数应该如何表现?

当我用谷歌搜索“如何找到数字的阶乘”时,我得到了很多答案......

其中一个例子是……

它可以工作......但是,Windows 计算器让我感到惊讶:它也适用于十进制数字!

例如:在 Windows 计算器上,的阶乘0.50.886226925...

这是期望的行为吗?是否为非整数定义了阶乘?

0 投票
2 回答
4470 浏览

function - 用于计算阶乘的函数的循环不变量

我很难正确识别以下函数的循环不变量:

我已经确定循环不变量是x = 1 OR x = y!因为该语句作为前置条件成立并且作为后置条件成立。

它似乎并不适用于每次迭代,例如如果 y = 3,那么在循环的第一次迭代中,x = 1 * 3 等于 3 而不是 3!相当于 6。

我想这就是我真正困惑的地方。一些书籍文章指出,循环不变量是在开始或循环时必须等于真(因此是前置条件)并且在循环结束时也必须为真(因此是后置条件)但不一定需要的语句在循环的中途保持真实。

上述函数的正确循环不变量是什么?

0 投票
1 回答
294 浏览

python - 使用列表合成堆栈以在 Python 中进行递归?例子?

例如,这是我的阶乘函数:

但是当 n 太高时它会崩溃。我想使用堆栈仿真来模拟这个完全相同的功能。我该怎么做这样的事情?如果它不是尾递归怎么办?很难找到解释。

0 投票
2 回答
721 浏览

c++ - 并发::可组合/ C++

这是计算任意数的阶乘的代码:

你能给我解释一下吗:

    • 是什么()->意思?我认为()是函子,但属于哪一类?为什么会有->
    • 什么是1LL