当前位置: 首页 > 编程笔记 >

编写Golang程序以查找给定数字的阶乘(使用递归)

杜联
2023-03-14
本文向大家介绍编写Golang程序以查找给定数字的阶乘(使用递归),包括了编写Golang程序以查找给定数字的阶乘(使用递归)的使用技巧和注意事项,需要的朋友参考一下

例子

5的阶乘= 5 * 4 * 3 * 2 * 1 = 120

10的阶乘= 10 * 9 * 8 * 7 * 6 * 5 * 4 * 3 * 2 * 1 =

解决这个问题的方法

  • 步骤1:定义一个接受数字(大于0)的函数,类型为int。

  • 步骤2:如果数字为1,则返回1。

  • 步骤3:否则,返回num * function(num-1)。

程序

package main
import "fmt"
func factorial(num int) int{
   if num == 1 || num == 0{
      return num
   }
   return num * factorial(num-1)
}
func main(){
   fmt.Println(factorial(3))
   fmt.Println(factorial(4))
   fmt.Println(factorial(5))
}
输出结果
6
24
120

 类似资料:
  • 本文向大家介绍编写Golang程序以查找给定范围内的质数,包括了编写Golang程序以查找给定范围内的质数的使用技巧和注意事项,需要的朋友参考一下 例子 输入num1 = 3和num2 = 8 =>质数是:3、5、7 输入num1 = 8和num2 = 23 =>质数是:11,13,17,19,23 解决这个问题的方法 步骤1:定义一个接受两个数字num1和num2的函数,类型为int。 步骤2:

  • 本文向大家介绍编写Golang程序以检查给定数字是否为质数,包括了编写Golang程序以检查给定数字是否为质数的使用技巧和注意事项,需要的朋友参考一下 定义: 一个数字是大于2且只能被其自身和1整除。 示例:素 数是2、3、5、7、11、13、113、119等。 解决这个问题的方法 步骤1:找到给定数字的平方根sq_root =√num 步骤2:如果给定数字可被[2,sq_root]所属的数字整除

  • 本文向大家介绍编写Golang程序以查找给定数组中的重复元素,包括了编写Golang程序以查找给定数组中的重复元素的使用技巧和注意事项,需要的朋友参考一下 例子 输入数组= [1、3、5、6、1] =>重复元素为1; 输入数组= [1、3、5、6、7] =>返回-1 解决这个问题的方法 步骤1: 定义一个接受数组的方法。 第2步: 声明访问过的映射。 步骤3:迭代给定的数组。如果该元素存在于已访问

  • 本文向大家介绍编写Golang程序以查找给定范围内的重复元素,包括了编写Golang程序以查找给定范围内的重复元素的使用技巧和注意事项,需要的朋友参考一下 我们可以通过两种不同的方式解决此问题。让我们检查第一种方法。 方法1:  例子 输入数组= [1、2、3、4、4] =>范围是1到5,但是4是该范围内的重复元素。 解决这个问题的方法 步骤1: 定义一个接受数组的方法。 第2步: 声明访问过的映

  • 本文向大家介绍编写Golang程序以使用位运算查找奇数和偶数,包括了编写Golang程序以使用位运算查找奇数和偶数的使用技巧和注意事项,需要的朋友参考一下 例子 输入num = 5 => 101&1 = 001 => True,即Odd;否则num将是偶数。 解决这个问题的方法 步骤1: 定义一个接受数字的方法。 第2步:使用该编号执行和操作。 步骤3:如果&运算符返回非零值,则该数字将为奇数。

  • 本文向大家介绍编写Golang程序以在数组(O(n))中查找具有给定总和的对,包括了编写Golang程序以在数组(O(n))中查找具有给定总和的对的使用技巧和注意事项,需要的朋友参考一下 例子 输入数组= [1、3、5、7、8、9],总和= 11 =>(3,8) 解决这个问题的方法 步骤1: 定义一个接受数组和sum的方法。 步骤2: 定义一个映射变量,输入map [int] int。 步骤3:将