Golang program to calculate the factorial using recursion

Here, we are going to learn how to calculate the factorial using recursion in Golang (Go Language)?
Submitted by Nidhi, on March 11, 2021 [Last updated : March 03, 2023]

Calculating the factorial using recursion in Golang

Problem Solution:

In this program, we will create a user-defined function to calculate the factorial of a given number using recursive and print the result on the console screen.

Program/Source Code:

The source code to calculate the factorial using recursion is given below. The given program is compiled and executed successfully.

Golang code to calculate the factorial using recursion

// Golang program to calculate
// the factorial using recursion

package main

import "fmt"

func factorial(num int) int {
	if num == 1 {
		return 1
	} else {
		return num * factorial(num-1)
	}
}

func main() {
	var num int = 0
	var fact int = 0

	fmt.Printf("Enter number: ")
	fmt.Scanf("%d", &num)

	fact = factorial(num)

	fmt.Printf("Factorial is: %d", fact)
}

Output:

Enter number: 7
Factorial is: 5040

Explanation:

In the above program, we declare the package main. The main package is used to tell the Go language compiler that the package must be compiled and produced the executable file. Here, we imported the fmt package that includes the files of package fmt then we can use a function related to the fmt package.

func factorial(num int)int{
  if(num==1){
    return 1
  }else{
    return num*factorial(num-1)  
  }
}

In the above code, we implemented a recursive function factorial() that accepts an integer number as an argument and returns the factorial of a given number to the calling function.

In the main() function, we created two variables num, fact with the initial value. After we called the factorial() function to get the factorial of the given number. After that print the result on the console screen.

Golang Recursion Programs »






Comments and Discussions!

Load comments ↻






Copyright © 2024 www.includehelp.com. All rights reserved.