Go递归函数

Posted yzg-14

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Go递归函数相关的知识,希望对你有一定的参考价值。

技术图片

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
 */

  

以上是关于Go递归函数的主要内容,如果未能解决你的问题,请参考以下文章

016_go语言中的递归

[Go] 通过 17 个简短代码片段,切底弄懂 channel 基础

Go 语言递归函数

go语言学习--go语言递归函数

吴裕雄--天生自然--Go 语言学习笔记--Go 语言递归函数

你知道的Go切片扩容机制可能是错的