• Skip to main content
  • Skip to footer

GO ALGORITHMS

Soluciones de lógica con Golang

  • Fácil
  • Intermedio
  • Avanzado
  • Todos
  • GitHub

Sucesión fibonacci en Go

Fibonacci secuencia

Fibonacci serie

Número Fibonacci

Ejemplos de la sucesión o serie fibonacci en Golang

Primer ejemplo fibonacci

package main

import (
     "fmt"
   	"logica/algoritmos"
)

func fibonacci(n int) int {
	a := 0
	b := 1
	// Iterate until desired position in sequence.
	for i := 0; i < n; i++ {
		// Use temporary variable to swap values.
		temp := a
		a = b
		b = temp + a
	}
	return a
}

func main() {
	// Display first 15 Fibonacci numbers.
	for n := 0; n < 15; n++ {
		// Compute number.
		result := fibonacci(n)
		fmt.Printf("Fibonacci %v = %v\n", n, result)
	}
}


Segundo ejemplo fibonacci

Este ejemplo muestra la grandeza de Go, para hacer cualquier cosa que tu quieras sin complicaciones y de forma rápida y cómoda para cualquier dev.

package main

import "fmt"

// fibonacci is a function that returns
// a function that returns an int.
func fibonacci() func() int {
	first := 0
	second := 0
	return func() int {
		if first == 0 {
			first = 1
			second = 1
			return 0
		} else {
			current := first
			firstc := second
			second = first + second
			first = firstc
			return current
		}

	}
}

func main() {
	f := fibonacci()
	for i := 0; i < 10; i++ {
		fmt.Println(f())
	}
}

Tercer ejemplo fibonacci

package algoritmos

func Fibonacci(n int) int {
	a := 0
	b := 1
	// Iterate until desired position in sequence.
	for i := 0; i < n; i++ {
		// Use temporary variable to swap values.
		temp := a
		a = b
		b = temp + a
	}
	return a
}

Estructura de directorios

Si quieres la misma estructura del ejemplo

logica
-algoritmo
--fibonacci.go
--fibonacci_test.go
main.go
  1. crea un directorio global = logica (sin acento)
  2. crearemos nuestro main.go
  3. crea un directorio algoritmo
  4. crea dentro de algoritmo un archivo fibonacci.go
  5. crea dentro de algoritmo un archivo fibonacci_test.go

Tienes prisa o tus dedos están cansados abre la terminal en el directorio logica y ejecuta el siguiente comando:

mkdir -p algoritmo && touch algoritmo/fibonacci.go algoritmo/fibonacci_test.go main.go

Test para fibonacci

package all_test

import (
	"testing"

	"logica/algoritmo"
)

func TestFibonacci(t *testing.T) {
	// Definir casos de prueba
	tests := map[int]struct {
		n        int
		expected int
	}{
		0:  {0, 0},
		1:  {1, 1},
		2:  {2, 1},
		3:  {3, 2},
		4:  {4, 3},
		5:  {5, 5},
		10: {10, 55},
		20: {20, 6765},
	}

	// Bucle para ejecutar pruebas
	for _, tt := range tests {
		actual := all.Fibonacci(tt.n)
		if actual != tt.expected {
			t.Errorf("fibonacciGood(%d) = %d; esperado %d", tt.n, actual, tt.expected)
		}
	}
}

Footer

Primeros con algoritmia

Amazon Interview | Asteroid Collision | Data Structures & Algorithms

Algoritmos por dificultad en Go

  • Fácil
  • Intermedio
  • Avanzado
  • Todos
  • GitHub

Algoritmos fáciles con Go

  • Amazon Interview | Asteroid Collision | Data Structures & Algorithms
  • Cifrado César
  • Math And Geometry
  • Bit Manipulation
  • Básicas
  • Más usadas
  • Complejas

Algoritmos intemedios con Go

  • Amazon Interview | Asteroid Collision | Data Structures & Algorithms
  • Cifrado César

Algoritmos avanzados con Go

  • Amazon Interview | Asteroid Collision | Data Structures & Algorithms
  • Cifrado César

Copyright © 2026 · Log in