Bruce Blog Bruce Blog
首页
  • CentOS
  • Ubuntu-Debian
  • 系统网络
  • 系统辅助工具
  • MySQL
  • Redis
  • Mongodb
  • Docker基础
  • Container基础
  • Kubernetes

    • Kubernetes基础
    • Kubernetes辅助
  • Container-Network
  • Jenkins
  • Gitlab
  • ArgoCD
  • Ansible
  • Terraform
  • AWS
  • MQ
  • NGINX
  • JumpServer
  • 基础
  • 函数模块
  • 框架
  • 基础

    • Golang环境
    • 语法
    • 数据类型与运算符
    • 分支语句
    • 循环语句
    • 数组
    • 切片
    • Map
    • String
    • 函数
    • 包的管理
    • 指针
    • 结构体
    • Go语言中的OOP
    • 方法和接口
    • 错误处理
  • Go进阶

    • Go进阶
  • Go框架

    • Go框架
  • Golang辅助

    • Golang辅助
  • CSS
  • HTML
  • JavaScript
  • 前端辅助
  • 常用命令
  • 性能监控工具
  • Windows下Docker使用
  • 日常学习
  • 其他导航

Bruce Tao

运维界的该溜子
首页
  • CentOS
  • Ubuntu-Debian
  • 系统网络
  • 系统辅助工具
  • MySQL
  • Redis
  • Mongodb
  • Docker基础
  • Container基础
  • Kubernetes

    • Kubernetes基础
    • Kubernetes辅助
  • Container-Network
  • Jenkins
  • Gitlab
  • ArgoCD
  • Ansible
  • Terraform
  • AWS
  • MQ
  • NGINX
  • JumpServer
  • 基础
  • 函数模块
  • 框架
  • 基础

    • Golang环境
    • 语法
    • 数据类型与运算符
    • 分支语句
    • 循环语句
    • 数组
    • 切片
    • Map
    • String
    • 函数
    • 包的管理
    • 指针
    • 结构体
    • Go语言中的OOP
    • 方法和接口
    • 错误处理
  • Go进阶

    • Go进阶
  • Go框架

    • Go框架
  • Golang辅助

    • Golang辅助
  • CSS
  • HTML
  • JavaScript
  • 前端辅助
  • 常用命令
  • 性能监控工具
  • Windows下Docker使用
  • 日常学习
  • 其他导航
  • 基础

    • Golang环境

    • 语法

    • 数据类型与运算符

    • 分支语句

    • 循环语句

    • 数组

    • 切片

    • Map

    • String

    • 函数

      • 函数
      • 函数的使用
      • 函数的参数
      • 函数的返回值
      • return语句
      • 函数中变量作用域
      • 递归函数
        • defer语句
        • 函数的数据类型
        • 函数的本质
        • 匿名函数
        • 回调函数
        • 闭包
      • 包的管理

      • 指针

      • 结构体

      • Go语言中的OOP

      • 方法和接口

      • 错误处理

    • Go进阶

    • Go框架

    • Golang辅助

    • Golang
    • 基础
    • 函数
    Bruce
    2022-10-27
    目录

    递归函数

    # 一、递归函数

    # 1.1 什么是递归函数
    • 一个函数自己调用自己,就叫做递归调用
    # 1.2 递归函数的出口
    • 一个递归函数一定要有出口,否则会陷入死循环

    image-20220904001639287

    image-20220904005119275

    # 代码实例
    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
    上次更新: 2024/04/09, 16:48:42
    函数中变量作用域
    defer语句

    ← 函数中变量作用域 defer语句→

    最近更新
    01
    AWS NAT-NetWork-Firwalld配置(一)
    04-09
    02
    AWS NAT-NetWork-Firwalld配置(二)
    04-09
    03
    kubernetes部署minio对象存储
    01-18
    更多文章>
    Theme by Vdoing | Copyright © 2019-2024 Bruce Tao Blog Space | MIT License
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式