首页 > 编程笔记 > Go语言笔记

Go语言递归函数的用法

一个函数中可以调用另一个函数,如果在函数中调用函数本身,就成了递归函数。

递归函数是通过不断调用自身代码,当达到特定条件时才终止调用过程,它的语法格式如下:
func myfunc() {
    // 函数调用自身
    myfunc()
}

func main() {
    myfunc()
}

递归函数用于斐波那契数列、阶乘、归并排序和排列组合等数学思维较强的业务场景。以斐波那契数列为例,斐波那契数列是指这样一个数列:{1,1,2,3,5,8,13,21,…},它的首项为 1,第 2 项也为 1,且从第 3 项起,每一项都等于它前两项之和,实现代码如下:
package main

import "fmt"

func fibonacci(n int) int {
    // 定义递归函数
    if n < 2 {
         return n
    }
    // 调用自身,传入不同参数值
    return fibonacci(n-2) + fibonacci(n-1)
}

func main() {
    var i int
    // 调用函数fibonacci()
    for i = 0; i < 10; i++ {
         fmt.Printf("%d ", fibonacci(i))
    }
}
上述代码定义了函数 fibonacci() 并设置了函数参数 n,函数递归思路如下:
运行上述代码,运行结果为:

0 1 1 2 3 5 8 13 21 34

相关文章