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
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值