问答详情
源自:7-5 Python之递归函数

递归的执行理解

def move(n, a, b, c):    if n ==1:        print a, '-->', c        return    move(n-1, a, c, b)    print a, '-->', c//为什么这行能执行,不理解这递归的执行    move(n-1, b, a, c) move(4, 'A', 'B', 'C')

提问者:car 2016-02-13 16:16

个回答

  • car
    2016-02-14 19:12:30

    那这个语言的return,和其他语言的return不一样,在方法中,其他语言是退出方法。 

  • airbagy
    2016-02-14 17:00:24

    rerturn 这个指令是“根据input”,“执行计算”,“返回一个output”。input是str,output也(可能)是str,这里就是这样。

  • airbagy
    2016-02-14 16:58:10

    #-*- coding:utf-8 -*-
    # move(n, a, b, c)表示的是有n个盘子在a柱子上,将要移到b柱子上面去
    def move(n, a, b, c):
    # 如果a柱子上面只有一个盘子,则直接移到c柱子上面去并输出路径,结束递归
        if n == 1:  
            print a, '-->', c
            return
    # 表示的是将n-1的盘子从a柱子上面移到b柱子上面去
        move(n-1, a, c, b)
    # 输出最下面个盘子移从a移到c的路径
        print a, '-->', c
    # 将b柱子上面的n-1个盘子移动到c柱子上面
        move(n-1, b, a, c)
    move(4, 'A', 'B', 'C')