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

  

posted @ 2020-02-01 06:19  1769987233  阅读(185)  评论(0编辑  收藏  举报