Instagram
youtube
Facebook
Twitter

Recursion in Golang

In this tutorial, we'll learn about the fundamentals of recursion in Golang.

What is Recursion?

Recursion is a powerful programming concept where a function calls itself to solve a problem. It's particularly useful for solving problems that can be broken down into smaller, similar subproblems.

Example 1: Calculate the factorial of a non-negative integer "n".

Code:

package main

import "fmt"

func factorial(n int) int {
	if n <= 0 {
		return 1
	}
	return n * factorial(n-1)
}

func main() {
	n := 5
	result := factorial(n)
	fmt.Printf("Factorial of %d is %d\n", n, result)
}

Output:

Factorial of 5 is 120

Example 2: Recursive Fibonacci Sequence.

Code:

package main

import "fmt"

func fibonacci(n int) int {
	if n <= 0 {
		return 0
	} else if n == 1 {
		return 1
	}
	return fibonacci(n-1) + fibonacci(n-2)
}

func main() {
	n := 8
	result := fibonacci(n)
	fmt.Printf("Fibonacci of %d is %d\n", n, result)
}

Output:

Fibonacci of 8 is 21