美文网首页
Go递归详解

Go递归详解

作者: 领带衬有黄金 | 来源:发表于2019-12-13 17:13 被阅读0次
栈区间

递归

栈:先进后出
函数执行完后,就会依次销毁。

总结:

  1. 执行一个函数时,就创建一个新的受保护的独立空间(新函数栈)
  2. 函数的局部变量是独立的,不会相互影响
  3. 递归必须向退出递归的条件逼近,否则就会无线递归,栈溢出。
  4. 当一个函数执行完毕,或者遇到return就会返回,遵守谁调用,就将结果返回给谁。同时函数执行完毕或return时,就会销毁自身

示例:斐波那契数

说明:
求出斐波那契数1,1,2,3,5,8,13...
给定一个整数n,求出该数对应的斐波数。
代码:

func feibo(n int) int {
    if n == 1 || n == 2 {
        return 1
    }
    fmt.Println(n)
    return feibo(n-1) + feibo(n-2)
}
func main() {
    //斐波那契数
    fmt.Println(feibo(7))# 13
}

猴子吃桃

//猴子吃桃
//说明 第一天吃了其中一半,并多吃了一个,以后每一天都吃其中的一半,然后再多吃一个,
//到第十天时,还没吃发现只剩了一个,试问最初有多少个桃子
func digui(n int) int {
    if n == 10 {
        return 1
    } else {
        return (digui(n+1) + 1) * 2
    }
}
func main() {
    //斐波那契数
    fmt.Println(digui(1))
}

相关文章

  • Go递归详解

    递归 栈:先进后出函数执行完后,就会依次销毁。 总结: 执行一个函数时,就创建一个新的受保护的独立空间(新函数栈)...

  • Learn Golang in Days - Day 13

    Learn Golang in Days - Day 13 简介 递归 递归,就是自己调用自己 Go语言支持递归 ...

  • 文章收藏

    channel Go Channel 详解

  • go递归

    1.递归的使用 使用递归快速排序 2.关于递归上下文的测试 运行的结果如下:

  • Go Gin 设置Cookie以及Cookie的参数详解

    Go Gin 设置Cookie以及Cookie的参数详解 参数详解 参数类型含义Namestringcookie的...

  • go modules详解

    go modules详解 [TOC] go1.11开始,支持使用go modules管理依赖包. 刚加入的适合尝试...

  • 递归详解

    本文首发于 LOGI'S BLOG,由作者转载。 递归是一种应用十分广泛的编程技巧,很多数据结构和算法都可用递归实...

  • 递归详解

    什么是递归?具体来讲就是把规模大的问题转化为规模小的相似的子问题来解决。在函数实现时,因为解决大问题的方法和解决小...

  • 递归详解

    ----------- 首先说明一个问题,简单阐述一下递归,分治算法,动态规划,贪心算法这几个东西的区别和联系,心...

  • 2017年5月17日晨读

    1.go package 的规范指南2.go structs 的并发安全3.go tcp详解4.go tool t...

网友评论

      本文标题:Go递归详解

      本文链接:https://www.haomeiwen.com/subject/wzzfnctx.html