我试图用迭代方法得到Fibonacci序列,但是我没有得到想要的输出。
function fibonacciGenerator(n) {
var arr = [];
var sum;
for (var i = 0; i < n; i++) {
if (i === 0 || i === 1) {
arr.push(i);
} else {
sum = arr[i - 2] + arr[i - 1];
arr.push(sum);
}
for (var i = 0; i < n; i++) {
console.log(arr[i]);
}
}
}
fibonacciGenerator(10);
我得到的结果是-
0
undefined
undefined
undefined
undefined
undefined
undefined
undefined
undefined
undefined请帮我找出问题
发布于 2022-06-21 12:09:07
你的内环写错地方了。
function fibonacciGenerator (n) {
var arr=[];
var sum;
for(var i=0;i<n;i++){
if(i===0 || i===1){
arr.push(i);
} else {
sum=arr[i-2]+arr[i-1];
arr.push(sum);
}
}
for(var i=0;i<n;i++) {
console.log(arr[i]);
}
}
fibonacciGenerator (10);
发布于 2022-06-21 12:11:18
您必须将打印循环移到主循环之外:
function fibonacciGenerator (n) {
var arr=[];
var sum = 0;
for(var i=0;i<n;i++){
if(i===0 || i===1){
arr.push(i);
}
else{
sum=arr[i-2]+arr[i-1];
arr.push(sum);
}
}
for(var i=0;i<n;i++){
console.log(arr[i]);
}
}
fibonacciGenerator(10);https://stackoverflow.com/questions/72700475
复制相似问题