go语言编程之递归

package main

import "fmt"

func main() {
   /**
   递归:可以简单理解为自己调自己
   优点:逻辑比循环更清晰
   注意:使用递归函数要注意防止栈溢出。在计算机中,函数调用是通过栈(stack)这种数据
   结构实现的。每当进入一个函数调用,栈就会加一层栈。每当函数返回,栈就会减少一层。
   由于栈的大小不是无限的,所以,递归调用的次数过多,会导致栈溢出。
   FILO: first input last output
    */
    n := 10
    fmt.Println(factorial(n))
    fmt.Println(getMultiple(n))
   
}
//用递归实现阶乘计算
func factorial(n int) (result int){

   if(n == 0){
   return 1
   }
   result =n * factorial(n-1)
   return
}
//用for循环实现阶乘计算
func getMultiple(num int) (result int){
     result = 1
   for i := 1; i <= num; i++ {
      result *=  i
   }
   return
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章