Estoy trabajando en una función que muestra el valor de un número dado en la secuencia de Fibonacci. Sin embargo, parece que el último número no es del todo correcto siguiendo el algoritmo de Fibonacci. ¿Alguna pista sobre lo que estoy haciendo mal aquí?
const fibonacci = function(num) { let fsec=[]; fsec[0]= 0; fsec[1]= 1; for(let i=2; i<=num; i++){ fsec[i]=fsec[i-2]+fsec[i-1]; fsec.push(i) } return fsec[fsec.length-1] }; fibonacci(6)2 cosas en tu bucle for. debería ser menor i num y el empuje debería empujar el número, no el iterador.
Cambia a esto:
for(let i=2; i<num; i++){ fsec[i]=fsec[i-2]+fsec[i-1]; fsec.push(fsec[i]) }use el siguiente código:
const fibonacci = function(num) { let fsec=[]; fsec[0]= 0; fsec[1]= 1; for(let i=2; i<num; i++){ fsec.push(fsec[i-2]+fsec[i-1]) } // console.log(fsec) // console.log(fsec[fsec.length-1]) return fsec[fsec.length-1] }; fibonacci(6)El fsec.push(i) es innecesario y es el problema en este caso..
const fibonacci = function(num) { let fsec=[]; fsec[0]= 0; fsec[1]= 1; for(let i = 2; i <= num; i++){ fsec[i] = fsec[i-2] + fsec[i-1]; } return fsec[fsec.length - 1] }; console.log(fibonacci(6));