go語言遞迴函式
阿新 • • 發佈:2022-04-04
Go語言遞迴函式
目錄Go語言遞迴函式
格式
遞迴,就是在執行的過程中呼叫自己。
語法格式如下:
func recursion() {
recursion() /* 函式呼叫自身 */
}
func main() {
recursion()
}
Go 語言支援遞迴。但我們在使用遞迴時,需要設定退出條件,否則遞迴將陷入無限迴圈中。
遞迴函式對於解決數學上的問題是非常有用的,就像計算階乘,生成斐波那契數列等。
階乘
package main import "fmt" func oper(n uint64) (result uint64) { if n > 0 { //每次遞迴呼叫,n的值-1 result = n * oper(n-1) return result } return 1 //當 n不滿足>0 的條件,則執行return 1,退出遞迴迴圈 } func main() { var i int = 5 fmt.Printf("%d 的階乘是 %d\n", i, oper(uint64(i))) } //輸出結果: 5 的階乘是 120
斐波那契數列
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