理解递归函数
递归函数的两个特征
函数自己调用自己
一定存在某个条件来终止递归,以避免无限递归
func main() {
// result is : 2 2 3
recursion(4)
}
func recursion(num int) {
if num > 2 {
num--
recursion(num)
}
fmt.Println(num)
}
为什么输出结果是2 2 3
函数数据结构是栈,它按照后进先出(LIFO)的原则存储和组织数据,因此函数执行结束的顺序依次为
recursion(2)、recursion(3)、recursion(4)、main()
因此结果自然是输出 2 2 3