码迷,mamicode.com
首页 > 其他好文 > 详细

Golang-递归

时间:2020-04-06 15:46:55      阅读:44      评论:0      收藏:0      [点我收藏+]

标签:nbsp   练习题   src   代码   code   函数   条件   练习   空间   

函数的递归调用

  基本介绍

    一个函数在函数体内又调用了本身,我们称为递归调

  递归调用快速入门

    技术图片

    上面代码的分析图:

    技术图片

 

    代码2

    技术图片

 

 

     对上面代码分析的示意图:

    技术图片

  递归调用的总结
    函数递归需要遵守的重要原则:

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

  递归课堂练习题

    题 1:斐波那契数
      请使用递归的方式,求出斐波那契数 1,1,2,3,5,8,13...
      给你一个整数 n,求出它的斐波那契数是多少?

      思路:
       1) 当 n == 1 || n ==2 , 返 回 1
       2) 当 n >= 2, 返回 前面两个数的和 f(n-1) + f(n-2)
      代码:

      技术图片 

    题 2:求函数值
      已 知 f(1)=3; f(n) = 2*f(n-1)+1;
      请使用递归的思想编程,求出 f(n)的值?
      思路:

      直接使用给出的表达式即可完成代码:

      技术图片

 

     

    题 3:猴子吃桃子问题
    有一堆桃子,猴子第一天吃了其中的一半,并再多吃了一个!以后每天猴子都吃其中的一半,然后再多吃一个。当到第十天时,想再吃时(还没吃),发现只有 1 个桃子了。问题:最初共多少个桃子?
    思路分析:
      1)第 10 天只有一个桃子
      2)第 9 天有几个桃子 = (第 10 天桃子数量 + 1) * 2
      3)规律: 第 n 天的桃子数据 peach(n) = (peach(n+1) + 1) * 2
      代码:

      技术图片 技术图片

 

Golang-递归

标签:nbsp   练习题   src   代码   code   函数   条件   练习   空间   

原文地址:https://www.cnblogs.com/Essaycode/p/12642148.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!