递归(Recursion)
- 一、GO+ 概述
- 二、定义
- 三、递归函数语法格式
- 四、GO+ 递归
- 五、递归函数的应用
官方线上GO+练习环境:https://play.goplus.org/
一、GO+ 概述
Go+ 是一门融合工程开发的 Go、数据科学领域的 Python、编程教学领域的 Scratch,以 Python 之形结合 Go 之心,让工程师处理数据不需要学习新的开发语言,让初学者学习编程、开发作品的门槛更低的编程语言。
二、定义
递归,就是在运行的过程中调用自己。
三、递归函数语法格式
递归,是指函数可以直接或间接的调用自身。
语法格式如下:
func recursion(){
recursion() //调用自身
}
四、GO+ 递归
Go +语言支持递归。但我们在使用递归时,开发者需要设置退出条件,否则递归将陷入无限循环中。
递归函数通常有相同的结构:一个跳出条件和一个递归体。所谓跳出条件就是根据传入的参数判断是否需要停止递归,而递归体则是函数自身所做的一些处理。
比如通过循环实现1+2+3+…+100,代码如下:
通过递归实现1+2+3+…+100,代码如下:
五、递归函数的应用
递归函数对于解决数学上的问题是非常有用的,就像计算阶乘,生成斐波那契数列等。
- 阶乘
以下实例通过GO+语言的递归函数实现阶乘,代码如下:
func factorialRecursion(num int) int {
if num == 0{
return 1
}
return num * factorialRecursion(num - 1)
}
ret := factorialRecursion(4)
println("4 阶乘:", ret)
以上实例执行输出结果为:
- 斐波那契数列
以下实例通过 Go+ 语言的递归函数实现斐波那契数列,代码如下:
func fibo(n int) int {
if n == 1 || n == 2 {
return 1
}
return fibo(n-1) + fibo(n-2)
}
ret := fibo(4)
println("斐波那契数列(n=4):", ret)
以上实例执行输出结果为: