18.Go_Recursive(递归)

Go 递归
递归,就是在运行的过程中调用自己。
语法格式:
func recursion() {
   recursion() /* 函数调用自身 */
}
func main() {
   recursion()
}
tip:
Go 语言支持递归。但我们在使用递归时,开发者需要设置退出条件,否则递归将陷入无限循环中。
阶乘
例如:
package main
import "fmt"
func Factorial(x int) (result int) {
    if x == 0{
    result = 1
  }else{
   result = x * Factorial(x -1)
  }
  return
}
func main() {
    var i int = 15
    fmt.Printf("%d的阶乘是 %d\n",i,Factorial(i))
}
运行结果:
15的阶乘是 1307674368000
斐波那契数列
例如:
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  

你可能感兴趣的:(18.Go_Recursive(递归))