我是 JavaScript 新手。最近有人问我以下代码的结果是什么。我不太确定如何回答这个问题。谁能提供他们认为的答案?
(function f(x, y, m) {
if (m > 0) { return f( y, x + y, m - 1 ); }
return y;
}(1, 2, 7) );
最佳答案
结果
55
为什么,首先是因为我是在控制台中启动的。这是一个递归,停止条件是m,即如果看起来总是减1。这个想法他调用了8次,最后一次直接返回第二个参数。
请注意,这里唯一重要的是第二个参数,即由 x + y
调用,Y 移动到第一个参数。
(((((((1 + 2 ) + 2 ) + 3 ) + 5) + 8 ) + 13 ) + 21)
这是一个从 1 和 2 开始的斐波那契数列:) 该函数提供从 x 和 y 开始的斐波那契数列中的位置 m + 2(您提供前 2 个数字)
1, 2, 3, 5, 8, 13, 21, 34, 55
关于JavaScript 结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30719396/