使用递归在 Golang 程序中查找给定数字的阶乘


2022 年 3 月 8 日, Learn eTutorial
1747

为了更好地理解这个示例,我们始终建议您学习下面列出的 Golang 编程 的基础主题

在本节中,我们将重点关注使用 Go 语言查找给定数字的阶乘。那么让我们了解什么是阶乘。

数字的阶乘

给定数字的阶乘是所有自然数乘积,直到给定数字。它将通过使用感叹号“!”来表示。为了理解更多细节,让我们看下面的例子。

3 的阶乘 = 3*2*1 = 6

7 的阶乘 = 7*6*5*4*3*2*1 = 5040

如何查找给定数字的阶乘

在这个 Go 程序中,我们需要使用递归来查找给定数字的阶乘。递归是一种编程技术,它使用函数或算法,允许自身调用一次或多次,直到满足指定条件。

我们在这个 Go 程序中应用的逻辑是声明变量 num,然后从用户那里读取您想要查找阶乘的数字并将其保存到变量 num 中。定义一个函数 factorial(num)  来计算数字的阶乘。在这里,函数接受输入数字 num。如果数字 num 为零或一,则阶乘将为 1。否则,使用递归函数 num*function(num-1) 计算阶乘。

这里我们可以使用内置函数 fmt.scanln() 来读取输入值。可以使用内置函数 fmt.println() 显示输出。这两个内置函数都定义在 fmt 包下。为了使用这些函数,我们应该将“fmt”包导入到我们的程序中。

下面是 Go 程序中使用的步骤。

算法 

步骤 1:导入包 fmt
步骤 2:打开 main() 开始程序,GO 程序执行从 main() 开始
步骤 3:声明变量 num
步骤 4:读取您想要查找阶乘的输入数字 num
步骤 5:调用函数 factorial(num)
步骤 6:在输出屏幕上显示数字的阶乘。
步骤 7:退出

实现 factorial(num) 的步骤

步骤 1:定义一个接受输入数字 num 的函数
步骤 2:使用 if 检查输入数字 num 是否为 1 或 0。如果有效,则返回 1。否则,返回 num*function(num-1)
 

Golang 源代码

                                          package main
import "fmt"
func factorial(num int) int{
   if num == 1 || num == 0{
      return num
   }
   return num * factorial(num-1)
}

func main(){
   var num int
   fmt.Println("Enter the number")
   fmt.Scan(#)
   fmt.Println("Factorial of the number is") 
   fmt.Println(factorial(num))
}   
                                      

输出

Enter the number
7
Factorial of the number is
5040