zoukankan      html  css  js  c++  java
  • python学习之递归函数

    递归函数:函数内部调用函数本身

    优点:定义简单、逻辑清晰

        函数调用是通过栈实现的,每进入一个函数调用,栈就会增加一层栈帧,每当函数返回,栈就会减一层栈帧

      因为递归函数多次调用本身,可能会出现栈溢出的现象,所以我们要利用尾递归来防止栈溢出

    尾递归:在函数返回的时候调用自身,return语句不包含表达式

    练习:

    请编写move(n, a, b, c)函数,它接收参数n,表示3个柱子A、B、C中第1个柱子A的盘子数量,然后打印出把所有盘子从A借助B移动到C的方法

    def move(n, a, b, c):
        if n==1:
            print(a, '-->', c)
        else:
            move(n-1,a,c,b)#将n-1个盘子移到b盘上
            move(1,a,b,c)#将最底部的盘子移到c盘上
            move(n-1,b,a,c)#将b盘上的盘子移到c盘上

    结果如下所示:

  • 相关阅读:
    方法的重载
    this用法
    简单的随机数 代码和笔记
    java内存简单剖析
    day 28
    day 27
    day 26
    day 25
    day 24
    day 23
  • 原文地址:https://www.cnblogs.com/manaizhuang/p/8670408.html
Copyright © 2011-2022 走看看