用数组作为输入参数实现fibonacci [重复]

问题描述 投票:0回答:1

这个问题在这里已有答案:

任务内容:fib()函数用于实现Fibonacci序列的形式公式。输入参数是完成该功能后数组中返回的字数。该函数应检查输入数据的正确性。

我已经实现了如下的fibonacci,但不知道如何使输入参数从同一函数返回的数量。当我尝试使用并发功能时根本不起作用(给出null或未定义的结果)。此外,函数总是为我返回一个数字(n),那么它如何成为一个数组?

function fib(n) {


  if (n <= 1) {
    return n;
  } else {
    n = (n - 2) + (n - 1);
    return n
  }
}



console.log(fib(8))
javascript fibonacci
1个回答
0
投票

如果你想输入单独的数字inputs.map(c=> fib(c));

您可以使用var arr = Array.from({length: 10}, (v, k) => fib(k));创建序列fib数的数组。

或者像这样使用循环

function fib(n) {
  if (n <= 1) {
    return n;
  } else {
    n = fib(n - 2) + fib(n - 1);
    return n
  }
}

// if you want to get sequence fib
var arr = Array.from({length: 10}, (v, k) => fib(k));
console.log(arr)

// use map if you input separate number
console.log('use map');
var inputs = [1, 4, 5, 8];
var outputs = inputs.map(c=> fib(c));
console.log(outputs)

// use for loop
var outputloops = [];
console.log('use for loop');
for(i =0; i< inputs.length; i++){
   outputloops.push(fib(inputs[i]));
}

console.log(outputloops);

function fibwitharray(arr) {
  var outputloops = [];
   
   for(i =0; i< inputs.length; i++){
      outputloops.push(fib(inputs[i]));
   }
   return outputloops;
}

function fib(n) {
  if (n <= 1) {
    return n;
  } else {
    n = fib(n - 2) + fib(n - 1);
    return n
  }
}

// if you want to get sequence fib
var arr = Array.from({length: 10}, (v, k) => fib(k));
console.log(arr)

// use map if you input separate number
console.log('use map');
var inputs = [1, 4, 5, 8];
var outputs = inputs.map(c=> fib(c));
console.log(outputs)

// use for loop
var outputloops = [];
console.log('use for loop');
for(i =0; i< inputs.length; i++){
   outputloops.push(fib(inputs[i]));
}

console.log(outputloops);

And this is exact your requirement

function fib(n) {

  const result = [0, 1];
  for (var i = 2; i < n; i++) {
    result.push(result[i-2] + result[i-1]);
  }
  return result; // or result[n-1] if you want to get the nth term

}

console.log(fib(8)); 
© www.soinside.com 2019 - 2024. All rights reserved.