好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

Go 语言递归函数

Go 语言递归函数

递归,就是在运行的过程中调用自己。

语法格式如下:

func recursion () {
   recursion () /* 函数调用自身 */
}

func main () {
   recursion ()
}

Go 语言支持递归。但我们在使用递归时,开发者需要设置退出条件,否则递归将陷入无限循环中。

递归函数对于解决数学上的问题是非常有用的,就像计算阶乘,生成斐波那契数列等。

阶乘

以下实例通过 Go 语言的递归函数实例阶乘:

实例

package main

import "fmt"

func Factorial ( n uint64 )( result uint64 ) {
    if ( n > 0 ) {
        result = n * Factorial ( n - 1 )
        return result
    }
    return 1
}

func main () {  
    var i int = 15
    fmt . Printf ( "%d 的阶乘是 %d \n " , i , Factorial ( uint64 ( i )))
}

以上实例执行输出结果为:

15 的阶乘是 1307674368000

斐波那契数列

以下实例通过 Go 语言的递归函数实现斐波那契数列:

实例

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
    for i = 0 ; i < 10 ; i ++ {
       fmt . Printf ( "%d \t " , fibonacci ( i ))
    }
}

以上实例执行输出结果为:

0    1    1    2    3    5    8    13    21    34

查看更多关于Go 语言递归函数的详细内容...

  阅读:33次

上一篇

下一篇

第1节:Go 错误处理    第2节:Go 语言 Map(集合)    第3节:Go 语言变量    第4节:Go 语言常量    第5节:Go 语言变量作用域    第6节:Go 语言递归函数    第7节:Go 语言环境安装    第8节:Go 语言结构    第9节:Go 语言基础语法    第10节:Go 语言教程    第11节:Go 语言结构体    第12节:Go 语言范围(Range)    第13节:Go 语言接口    第14节:Go 语言函数    第15节:Go 语言数组    第16节:Go 语言数据类型    第17节:Go 语言运算符    第18节:Go 语言条件语句    第19节:Go 语言循环语句    第20节:Go 语言指针    第21节:Go 语言切片(Slice)    第22节:Go 语言类型转换    第23节:Go 语言开发工具