递归函数
# 一、递归函数
# 1.1 什么是递归函数
- 一个函数自己调用自己,就叫做递归调用
# 1.2 递归函数的出口
- 一个递归函数一定要有出口,否则会陷入死循环
# 代码实例
package main
import "fmt"
func main() {
/*
递归函数(recursion): 一个函数自己调用自己,就叫做递归函数.
递归函数要有一个出口,逐渐的像出口靠近
*/
//1.求1-5的和
sum := getSum(5)
fmt.Println(sum)
// 2.fibonacci数列
/*
1 2 3 4 5 6 7 8 9 10 11 12 ...
1 1 2 3 5 8 13 21 34 55 89 144 ...
*/
res := getFibonacci(12)
fmt.Println(res)
}
func getFibonacci(n int) int {
if n == 1 || n == 2 {
return 1
}
return getFibonacci(n-1) + getFibonacci(n-2)
}
func getSum(n int) int {
fmt.Println("*****")
if n == 1 {
return 1
}
return getSum(n-1) + n
}
/*
求1-5的和
getSum(5)
getSum(4) + 5
getSum(3) + 4
getSum(2) + 3
getSum(1) + 2
1
*/
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
上次更新: 2024/04/09, 16:48:42
- 01
- AWS NAT-NetWork-Firwalld配置(一)04-09
- 02
- AWS NAT-NetWork-Firwalld配置(二)04-09
- 03
- kubernetes部署minio对象存储01-18