作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以我创建了斐波那契数列,但作为初学者,我在 w3resources 上找到的方法有点令人困惑。当 n = 2
时究竟发生了什么? s
变成了 fibonnacci_series(1)
,但这到底意味着什么?首先,为什么我们有 var fibonacci_series = function(n)
,为什么不只是有一个名为 function fibonacci_series(n)
的函数?
var fibonacci_series = function (n)
{
if (n===1)
{
return [0, 1];
}
else
{
var s = fibonacci_series(n - 1);
s.push(s[s.length - 1] + s[s.length - 2]);
return s;
}
};
console.log(fibonacci_series(8));
最佳答案
这两行做几乎相同的事情(更多细节见 here 但正如评论中所说,这可能与你现在不相关):
var fibonacci_series = function (n)
function fibonacci_series(n)
两者都定义了一个名为 fibonacci_series
的函数,它以 n
为参数,它只是一个变体。
斐波那契数列函数是一个递归函数,意味着它在函数体中调用自身(例如函数内部有fibonnacci_series(n-1)
)。
当 n = 2
时,s
等于 fibonnacci_series(1)
的值,这是 if 返回的值
语句。
关于Javascript 斐波那契方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37734606/
我是一名优秀的程序员,十分优秀!