¿Qué es la recursividad?
Comprende de una vez qué es la recursividad
Publicado el 21.05.2022 a las 10: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. Si no sabes qué es la recursividad te lo cuento 👇
¿Qué es la recursividad?
Comprende de una vez qué es la 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 🖖