21.05.2022 a las 12:46
Devuelve n elementos de la serie de Fibonacci
Me he encontrado por Internet que un algoritmo que suelen pedir mucho en las pruebas técnicas para junior es devolver la serie de Fibonacci de n elementos deseados.
Vamos a hacerlo con y sin recursividad.
Es una serie de números que comienza con el 0 y con el 1 y el resto de números de la serie se calcula como la suma de los 2 números anteriores de la serie.
Te dejo aquí otra explicación por si no te ha quedado claro.
Estamos suponiendo que la entrevista es para un Junior, si fuera para Senior lo resolvería usando TDD. Es decir, el código del algoritmo sería el mismo pero incluiría un fichero con pruebas unitarias.
const itemsDesired = 20; const fibonacci = [0,1]; while (fibonacci.length<itemsDesired){ const newFibonacciItem = fibonacci[fibonacci.length-2] + fibonacci[fibonacci.length-1] fibonacci.push(newFibonacciItem); } console.log(fibonacci); //[LOG]: [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181]
const itemsDesired = 20; const fibonacci = [0,1]; function getFibonacci():number[]{ if (fibonacci.length===itemsDesired) return fibonacci; const newFibonacciItem = fibonacci[fibonacci.length-2] + fibonacci[fibonacci.length-1] fibonacci.push(newFibonacciItem); return getFibonacci(); } console.log(getFibonacci()); //[LOG]: [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181]
Hasta luego 🖖
Software
IoT
Digitalización
Aplicaciones móviles
Consultoría