Serie de Fibonacci

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!

Quiero más info

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. 🚀

Publicado: 2022-11-30 Actualizado: 2022-12-28

✉️ NEWSLETTER ANDROIDE ✉️

Deja tu email para recibir TIPS sobre ANDROID cada domingo GRATIS.

Además, AL APUNTARTE CONSEGUIRÁS el audio de 54 minutos con MI ESTRATEGIA para convertirte en un Desarrollador Android Senior DE REGALO. 🎁

Acepto que trates mis datos con privacidad.