go 遞迴tree關係 Go 語言遞迴函式

2021-10-16 16:34:26 字數 934 閱讀 3560

遞迴,就是在執行的過程中呼叫自己。

語法格式如下: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 

return n

return fibonacci(n-2) + fibonacci(n-1)

func main() {

var i int

for i = 0; i 

fmt.printf("%d\t", fibonacci(i))

以上例項執行輸出結果為:0    1    1    2    3    5    8    13    21    34

go 遞迴tree關係 Go 語言遞迴函式

求平方根 原理 計算機通常使用迴圈來計算 x 的平方根。從某個猜測的值 z 開始,我們可以根據 z 與 x 的近似度來調整 z,產生乙個更好的猜測 z z z x 2 z 重複調整的過程,猜測的結果會越來越精確,得到的答案也會盡可能接近實際的平方根。package main import fmt f...

go 遞迴tree關係 golang鍊錶理解 遞迴

1 不使用遞迴 a.鍊錶間運算 逐位相加 leetcode題目 示例 輸入 2 4 3 5 6 4 輸出 7 0 8 原因 342 465 807 definition for singly linked list.type listnode struct else 3.替換空指標 nownode....

Go 語言遞迴函式

遞迴,就是在執行的過程中呼叫自己。語法格式如下 1 func recursion 45 func main go 語言支援遞迴。但我們在使用遞迴時,開發者需要設定退出條件,否則遞迴將陷入無限迴圈中。遞迴函式對於解決數學上的問題是非常有用的,就像計算階乘,生成斐波那契數列等。以下例項通過 go 語言的...