Seguramente en muchos tutoriales por internet o en pruebas técnicas, habrás visto cómo se resolvería la famosa prueba de la serie de Fibonacci.
¿Y si te dijeramos que existe una forma muchísimo más óptima de calcular cualquier número de la serie de Fibonacci? ¿y que además no hace falta ejecutar ningún bucle para obtener el valor de cualquier elemento de la serie?
Es por ello, que proponemos un reto para los cerebros más avanzados, solo apto para aquellos con un cociente intelectual elevado capaces de resolver este pequeño acertijo.
De esta manera, si logras resolverlo; dejarás con la boca abierta a cualquiera que te plantee este y otros muchos problemas del mismo estilo.
Para una explicación detallada, puedes acceder a nuestro curso abierto de acertijos Maker con un grado de dificultad muy alto.
Si tienes la solución, puedes dejárnosla en los comentarios de esta misma entrada o enviarnos un correo con la respuesta y si es la correcta, te regalamos un jarrón impreso en 3D.
Lo pongo en go
package main
import “fmt”
func fibonacci(n int) int {
if n == 0 {
return 1
} else if n == 1 {
return 1
} else {
return fibonacci(n – 1) + fibonacci(n-2)
}
}
func main() {
// cambiar por el valor que se quiera calcular
fmt.Println(fibonacci(6))
}
Si no usamos un método iterativo, podemos programar un método RECURSIVO. Definimos la función f(n)=f(n-1)+n
con la condición de salida
f(1)=1
Muy bien, pero aún así tendríamos un algoritmo recursivo de orden O(2^n).
Existe una opción para calcular cualquier número de Fibonacci con una sola ecuación. 😉