Go遞歸

所謂的遞歸就是函數調用自身,本文將通過幾個經典的算法來講解go遞歸的使用

語法格式如下:

func recursion() {
   recursion() /* 函數調用自身 */
}
func main() {
   recursion()
}

階乘

以下實例通過 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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章