
Serie de Fibonacci
La serie o sucesión de Fibonacci es una serie de números en la que cada elemento es la suma de los dos anteriores.
La más conocida es la formada por los siguientes números:
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144…
Los miembros de "Los androides Premium" escuchan contenido adicional en audio sobre este artículo... ¡y otros 77 más!
Hay que suscribirse para disfrutar de todo el contenido premium desde la web y la app, así como participar en las actividades premium: videoconferencias y canales premium en Discord.
De hecho, a simple vista vemos que sería lo siguiente:
0, 0+1, 1+1, 1+2, 2+3, 3+5...
¿Y cómo podríamos implementarlo en Kotlin?
Qué tal si pruebas a hacerlo primero y luego vuelves a ver una solución. 😉
…
Y digo una solución.
Porque evidentemente se podría implementar de otro modo:
/** * O(2^n) */ fun fibonacci(number: Int): Int { if (number <= 1) { return number } return fibonacci(number - 2) + fibonacci(number - 1) }
Y aquí un test supersencillito para chequearla:
import org.junit.Assert.assertTrue import org.junit.Test class FibonacciKtTest { @Test fun `check fibonacci function works properly`() { assertTrue(0 == fibonacci(0)) assertTrue(1 == fibonacci(1)) assertTrue(1 == fibonacci(2)) assertTrue(2 == fibonacci(3)) assertTrue(3 == fibonacci(4)) assertTrue(5 == fibonacci(5)) assertTrue(8 == fibonacci(6)) } }
A destacar es que usa recursividad. Y que tiene una puntuación Big O de O(2^n)
.
Y poco más que añadir. 🚀