[Python]递归汉诺塔

Posted Alimy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Python]递归汉诺塔相关的知识,希望对你有一定的参考价值。

move_count  =  0 ; 
def hanoi(n,src,buffer,dst):
    ‘n:需移动的盘子个数,src:盘子原来的位置,buffer:盘子可临时使用的位置,dst:盘子的目标移动位置‘
    global move_count;
    if n < 1:
        print(‘输入有误‘);
        return None;
    elif n==1:
        print(src + ‘----->‘ + dst);
        move_count += 1;
    else:
        hanoi(n-1,src,dst,buffer);
        hanoi(1,src,buffer,dst);
        hanoi(n-1,buffer,src,dst);


move_count  = 0 ;
hanoi(5,‘A‘,‘B‘,‘C‘);
print(‘move_steps = ‘,move_count);
print(hanoi.__doc__);

  

运行结果(Python3.7):

A----->C
A----->B
C----->B
A----->C
B----->A
B----->C
A----->C
A----->B
C----->B
C----->A
B----->A
C----->B
A----->C
A----->B
C----->B
A----->C
B----->A
B----->C
A----->C
B----->A
C----->B
C----->A
B----->A
B----->C
A----->C
A----->B
C----->B
A----->C
B----->A
B----->C
A----->C
move_steps = 31
n:需移动的盘子个数,src:盘子原来的位置,buffer:盘子可临时使用的位置,dst:盘子的目标移动位置


































以上是关于[Python]递归汉诺塔的主要内容,如果未能解决你的问题,请参考以下文章

汉诺塔内存分析(python)

Python函数递归之汉诺塔

python数据结构_递归_汉诺塔问题

汉诺塔递归

python_递归实现汉诺塔

Python递归实现汉诺塔