gistlib
Here is an implementation of fibonacci sequence in Go using both loops and recursion:
Using loops:
main.gofunc fibonacciLoop(n int) []int { fib := make([]int, n) fib[0], fib[1] = 0, 1 for i := 2; i < n; i++ { fib[i] = fib[i-1] + fib[i-2] } return fib } 175 chars9 lines
func fibonacciLoop(n int) []int { fib := make([]int, n) fib[0], fib[1] = 0, 1 for i := 2; i < n; i++ { fib[i] = fib[i-1] + fib[i-2] } return fib }
Using recursion:
main.gofunc fibonacciRecursive(n int) int { if n <= 1 { return n } return fibonacciRecursive(n-1) + fibonacciRecursive(n-2) } 139 chars7 lines
func fibonacciRecursive(n int) int { if n <= 1 { return n } return fibonacciRecursive(n-1) + fibonacciRecursive(n-2) }
You can call the functions like this:
main.gofibLoop := fibonacciLoop(10) fmt.Println(fibLoop) // Output: [0 1 1 2 3 5 8 13 21 34] fibRec := fibonacciRecursive(10) fmt.Println(fibRec) // Output: 55 154 chars6 lines
fibLoop := fibonacciLoop(10) fmt.Println(fibLoop) // Output: [0 1 1 2 3 5 8 13 21 34] fibRec := fibonacciRecursive(10) fmt.Println(fibRec) // Output: 55
gistlibby LogSnag