自学网

Menu

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
— 于 共写了703个字
— 文内使用到的标签: