# Golang program to calculate the power of a given number using recursion

Here, we are going to learn how to calculate the power of a given number using recursion in Golang (Go Language)?
Submitted by Nidhi, on March 11, 2021

Problem Solution:

In this program, we will create a user-defined function to calculate the power of a given number using recursive and return the result to the calling function.

Program/Source Code:

The source code to calculate the power of a given number using recursion is given below. The given program is compiled and executed successfully.

```// Golang program to calculate the power of a
// given number using recursion

package main

import "fmt"

func CalculatePower(num int, power int) int {
var result int = 1
if power > 0 {
result = num * (CalculatePower(num, power-1))
}
return result
}

func main() {
var base, power int
var result int

fmt.Printf("Enter value of base: ")
fmt.Scanf("%d", &base)

fmt.Printf("Enter value of power: ")
fmt.Scanf("%d", &power)

result = CalculatePower(base, power)

fmt.Printf("%d to the power of %d is: %d\n", base, power, result)
}
```

Output:

```Enter value of base: 3
Enter value of power: 7
3 to the power of 7 is: 2187
```

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 CalculatePower(num int, power int)int{
var result int=1
if(power>0){
result=num*(CalculatePower(num,power-1))
}
return result
}
```

In the above code, we implemented a recursive function CalculatePower() that accepts a number and power as an argument and returns the result to the calling function.

In the main() function, we read the base number and power from the user, and then we called CalculatePower() function to calculate the power of the base number and print the result on the console screen.