理解递归函数

递归函数的两个特征

函数自己调用自己

一定存在某个条件来终止递归,以避免无限递归

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

posted @ 2023-10-30 23:55  Ashe|||^_^  阅读(8)  评论(0编辑  收藏  举报