logo

递归函数实例
在函数内部,可以调用其他函数。如果一个函数在内部调用自身,那么这个函数就是递归函数。

递归函数必须满足以下两个条件:
(1)在每一次调用自己时,必须是(在某种意义上)更接近于解;
(2)必须有一个终止处理或计算的准则。

下面通过案例来理解递归函数的作用。
计算阶乘n! = 1 x 2 x 3 x ... x n,用函数fact(n)表示,可以看出:fact(n) = n! = 1 x 2 x 3 x ... x (n-1) x n = (n-1)! x n = fact(n-1) x n。所以,fact(n)可以表示为n x fact(n-1),只有n=1时需要特殊处理。
//阶乘
package main
import "fmt"
func main() {
   fmt.Println(factorial(5))
}
//通过递归实现阶乘
func factorial(n int) int {
   if n == 0 {
      return 1
   }
   return n * factorial(n-1)
}
//通过循环实现阶乘
func getMultiple(num int) (result int) {
   result = 1
   for i:=1; i<= num; i++ {
      result *= i
   }
   return
}