首页 > 其他分享 >递归函数

递归函数

时间:2023-02-08 21:15:06浏览次数:45  
标签:return 递归函数 int fmt taijie func main

就是函数自己调用自己

举个例子,阶乘:

package main

import "fmt"

// 3! = 3*2*1 = 3*2!
// 4! = 4*3*2*1 = 4*3!
// 5! = 5*4*3*2*1 = 5*4!

func f1(n int) int {
  if n <= 1 {
    return 1 //程序退出条件
  }
  return n * f1(n-1)
}

func main() {
  ret := f1(5)
  fmt.Println(ret)
}

递归一定要有一个确定的退出条件,递归时候处理那种问题相同,问题的规模越来越小的场景

上台阶问题

n个台阶,一次可以走一步,也可以走两步,有多少种走法

package main

import "fmt"

//n个台阶,一次可以走一步,也可以走两步,有多少种走法

func taijie(n int) int {
  if n == 1 {
    return 1
  }
  if n == 2 {
    return 2
  }
  //这两个if是判断最后一步是几种走法
  return taijie(n-1) + taijie(n-2) //-1是都一步一步的走,-2是两步两步的走
}

func main() {
  ret := taijie(20)
  fmt.Println(ret)
}

标签:return,递归函数,int,fmt,taijie,func,main
From: https://www.cnblogs.com/suknna/p/17103287.html

相关文章