以数组作为输入参数实现斐波那契数列
Implementing fibonacci with array as an input parameter
任务内容:
fib() 函数是为斐波那契数列实现一个形式化的公式。输入参数是函数完成后返回数组中的单词数。该函数应检查输入数据的正确性。
我已经按如下方式实现了斐波那契数列,但不知道如何使输入参数成为同一函数返回的数字的数量。当我尝试使用循环函数时根本不起作用(给出 null 或未定义的结果)。还有,函数returns对我来说总是一个数(n),怎么变成数组了?
function fib(n) {
if (n <= 1) {
return n;
} else {
n = (n - 2) + (n - 1);
return n
}
}
console.log(fib(8))
如果要输入单独的号码inputs.map(c=> fib(c));
您可以使用 var arr = Array.from({length: 10}, (v, k) => fib(k));
创建序列 fib 数数组。
或者像这样使用 for 循环
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));
任务内容: fib() 函数是为斐波那契数列实现一个形式化的公式。输入参数是函数完成后返回数组中的单词数。该函数应检查输入数据的正确性。
我已经按如下方式实现了斐波那契数列,但不知道如何使输入参数成为同一函数返回的数字的数量。当我尝试使用循环函数时根本不起作用(给出 null 或未定义的结果)。还有,函数returns对我来说总是一个数(n),怎么变成数组了?
function fib(n) {
if (n <= 1) {
return n;
} else {
n = (n - 2) + (n - 1);
return n
}
}
console.log(fib(8))
如果要输入单独的号码inputs.map(c=> fib(c));
您可以使用 var arr = Array.from({length: 10}, (v, k) => fib(k));
创建序列 fib 数数组。
或者像这样使用 for 循环
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));