题目详情:
请你编写一个生成器函数,并返回一个可以生成 斐波那契数列 的生成器对象。
斐波那契数列 的递推公式为 Xn = Xn-1 + Xn-2 。
这个数列的前几个数字是 0, 1, 1, 2, 3, 5, 8, 13 。
示例:
输入:callCount = 5
输出:[0,1,1,2,3]
解题思路:
创建一个生成器函数 fibonacciGenerator,接受一个参数 callCount,用于指定要生成的斐波那契数列的数量。
初始化前两个斐波那契数 n1 和 n2 分别为 0 和 1。
使用 yield 关键字逐个生成斐波那契数,每次生成后更新 n1 和 n2 的值,生成总数达到 callCount 后停止生成。
代码实现:
function* fibonacciGenerator(callCount) {
let n1 = 0;
let n2 = 1;
for (let i = 0; i < callCount; i++) {
yield n1;
[n1, n2] = [n2, n1 + n2];
}
}
// 测试调用
let callCount = 5;
let fibonacciGen = fibonacciGenerator(callCount);
let result = Array.from(fibonacciGen);
console.log(result);