python练习-递归函数实现汉诺塔搬迁问题

def move(n,a=‘A‘,b=‘B‘,c=‘C‘):
    if n==1:
        print(‘move‘,a,‘to‘,c)
     else:
        move(n-1,a,c,b)#将A上的n-1块通过c搬运到b上
        print(‘move‘,a,‘to‘,c)#将A最下面的那一块搬到C上
        move(n-1,b,a,c)#将b的n-1块通过a搬到c上,结束

输入:

move(10),运行结果如下:

时间: 2024-12-29 07:35:36

python练习-递归函数实现汉诺塔搬迁问题的相关文章

【Python实践-3】汉诺塔问题递归求解

1 # -*- coding: utf-8 -*- 2 #汉诺塔移动问题 3 # 定义move(n,a,b,c)函数,接受参数n,表示3个柱子A.B.C中第1个柱子A的盘子数量 4 # 然后打印出把所有盘子从A借助B移动到C的方法 5 def move(n,a,b,c): 6 if n==1: 7 print('move', a, '-->', c) 8 else: 9 move(n-1,a,c,b) 10 move(1,a,b,c) 11 move(n-1,b,a,c) 12 move(5,'

JavaScript递归函数解“汉诺塔”

"汉诺塔"是一个著名的益智游戏.塔上有3根柱子和一套直径各不相同的空心圆盘.开始时柱子上的所有圆盘都按照从小到大的顺序堆叠.目标是通过每次移动一个圆盘到另一根柱子,最终把一堆圆盘移动到目标柱子上,过程中不允许把交大的圆盘放置在较小的圆盘之上. 仔细解读这段话,如果有10个圆盘甚至更多,那操作步骤绝对多到让人震惊,但目标是把一堆圆盘移动到目标柱子上,如果把上面的9个圆盘看成一套,第10个圆盘看成另一套,先移动9个圆盘到另一根柱子上,再把上面8个圆盘看成一套,第9个圆盘看成另一套--依次类

Python 实现递归算法之汉诺塔

如图的小游戏,汉诺塔: 游戏的目的是将最左边的三块移动到最右边,游戏即为成功. 下面按照代码的步骤进行移动,三根柱子分别代表了x,y,z: 发现可以实现游戏目的! 当然,三个对于很多人来说并不难实现目标,但是当块变成了5个甚至8个呢 下面,我们来试试7个方块,同样是三根柱子,人的计算就很难实现游戏目标了 所以我们用代码来试试: 可以看到非常长,所以我来按照他的指示来进行游戏 游戏成功! 总共有128步操作,如果人为的来进行游戏的话,很有可能会出错. 所以在此运用了递归算法,编写递归函数来教我们如

Python函数递归之汉诺塔

汉诺塔:汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具.大梵天创造世界的时候做了三根金刚石柱子, 在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘.大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上. 并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘. 汉诺塔的移动问题,汉诺塔的三个圆柱分别标注为A.B.C,圆盘开始是在A圆柱上面并上从下往上按照大小顺序摞着圆盘,需要将其移动到 C圆柱,递归的思路是: (1)A上的的圆盘个数n = 1,那么很直接,直

python第二天:递归函数(汉诺塔)

1 #hanoi.py 2 def hanoi(n,x,y,z): 3 if n==1: 4 print(x,"-->",z) 5 else: 6 hanoi(n-1,x,z,y) 7 print(x,"-->",z) 8 hanoi(n-1,y,x,z) 9 hanoi(2,"X","Y","Z") 10 print("----------") 11 hanoi(3,&qu

python实现算法题-汉诺塔

def hnoi(n,a,b,c): if n == 1: print a,c else: hnoi(n-1,a,c,b) print a,c hnoi(n-1,b,a,c) hnoi(3,'a','b','c')

递归函数 汉诺塔

#include<stdio.h>//递归函数,汉诺塔void hanoi(int n,char c1,char c2,char c3);void move(char x,char y);int main(){ int i; printf("move n dishes for A to C,n="); scanf("%d",&i); hanoi(i,'A','B','C'); return 0;}void hanoi(int n,char c1,

汉诺塔递归

#一日一词# 今天在学习Python的时候,遇到了递归问题,案例呢就是经典的汉诺塔游戏,表示虽然以前就接触过这游戏,解起来也很容易,不过放在编程里,几行的代码可够我手推了一个多小时.╭∩╮(︶︿︶)╭∩╮ 当然也是感受到了搞清楚一个(我认为的)难题的乐趣,心情大好,买条裤子. (表示从晚上一直整理到第二天,电脑没电所以今早发,生日与学习紧密结合)? 首先说下汉诺塔游戏,如下图,需要利用中间的柱子将左边的所有圆盘移动到最右边的柱子上,且和原来的大小上下顺序一致,移动过程中保证大盘永远在小盘下面.

python3汉诺塔简单实现代码

小时候喜欢玩汉诺塔,今天用python实现简单的汉诺塔功能 代码: def hannoi(n,x,y,z): if n==1: print(x,'-->',z) else: hannoi(n-1, x, z, y) print(x,'-->',z) hannoi(n-1, y, x, z) n=int(input("请输入x,yz:")) hannoi(n, "X", "Y", "Z") 原文地址:https://