Pyhton:汉诺塔游戏

#汉诺塔游戏攻略!
 def hanoi(n,x,y,z):
         if n == 1:
                 print(x,‘-->‘,z)
         else:
                 hanoi(n-1,x,z,y)   #将前n-1个盘子从x移动到y上
                 print(x,‘-->‘,z)   #将最底下的最后一个盘子从x移动到z上
                 hanoi(n-1,y,x,z)   #将y上的n-1个盘子移动到z上
 n = int(input(‘请输入层数:‘))
 hanoi(n,‘x‘,‘y‘,‘z‘)

输出结果为:

 请输入层数:3 x --> z
 x --> y z --> y
 x --> z
 y --> x
 y --> z
 x --> z
 
时间: 2024-10-18 21:22:37

Pyhton:汉诺塔游戏的相关文章

codevs3145 汉诺塔游戏

3145 汉诺塔游戏 时间限制: 1 s 空间限制: 32000 KB 题目等级 : 白银 Silver 题目描述 Description 汉诺塔问题(又称为河内塔问题),是一个大家熟知的问题.在A,B,C三根柱子上,有n个不同大小的圆盘(假设半径分别为1-n吧),一开始他们都叠在我A上(如图所示),你的目标是在最少的合法移动步数内将所有盘子从A塔移动到C塔. 游戏中的每一步规则如下: 1. 每一步只允许移动一个盘子(从一根柱子最上方到另一个柱子的最上方) 2. 移动的过程中,你必须保证大的盘子

经典分治 - 汉诺塔游戏

分治策略: 将父问题划分为多个子问题(注:子问题与父问题一定要具有自相似性),然后找递归出口. 1.子问题规模变小.2.子问题与父问题本质等价. 汉诺塔游戏简述:三个柱A.B.C,将从大到小的盘按规则从A柱移到B柱. 具体的分治算法实现: 1 - N从A移动到B,C为辅助. 等价于: 1.1 - (N - 1)从A移动到C,B为辅助 2.把N从A移动到B 3.1 - (N - 1)从C移动到B,A为辅助 话说当时刚开始想这个问题的时候,我把2 - N当作一个子问题移动对象,将1盘移到辅助柱子上,

3145 汉诺塔游戏——http://codevs.cn/problem/3145/

第一部分:题目 题目描述 Description 汉诺塔问题(又称为河内塔问题),是一个大家熟知的问题.在A,B,C三根柱子上,有n个不同大小的圆盘(假设半径分别为1-n吧),一开始他们都叠在我A上(如图所示),你的目标是在最少的合法移动步数内将所有盘子从A塔移动到C塔. 游戏中的每一步规则如下: 1. 每一步只允许移动一个盘子(从一根柱子最上方到另一个柱子的最上方) 2. 移动的过程中,你必须保证大的盘子不能在小的盘子上方(小的可以放在大的上面,最大盘子下面不能有任何其他大小的盘子) 如对于n

CodeVs[3145 汉诺塔游戏]

题目描述 Description 题目描述 Description 汉诺塔问题(又称为河内塔问题),是一个大家熟知的问题.在A,B,C三根柱子上,有n个不同大小的圆盘(假设半径分别为1-n吧),一开始他们都叠在我A上(如图所示),你的目标是在最少的合法移动步数内将所有盘子从A塔移动到C塔. 游戏中的每一步规则如下: 1. 每一步只允许移动一个盘子(从一根柱子最上方到另一个柱子的最上方) 2. 移动的过程中,你必须保证大的盘子不能在小的盘子上方(小的可以放在大的上面,最大盘子下面不能有任何其他大小

3145 汉诺塔游戏

题目描述 Description 汉诺塔问题(又称为河内塔问题),是一个大家熟知的问题.在A,B,C三根柱子上,有n个不同大小的圆盘(假设半径分别为1-n吧),一开始他们都叠在我A上(如图所示),你的目标是在最少的合法移动步数内将所有盘子从A塔移动到C塔. 游戏中的每一步规则如下: 1. 每一步只允许移动一个盘子(从一根柱子最上方到另一个柱子的最上方) 2. 移动的过程中,你必须保证大的盘子不能在小的盘子上方(小的可以放在大的上面,最大盘子下面不能有任何其他大小的盘子) 如对于n=3的情况,一个

Unity实现汉诺塔游戏

汉诺塔的规则: 有ABC三个柱子,A柱子上从小到大排列圆盘 要将A柱子上所有圆盘移动到C柱子上,每次只能移一个 圆盘放置必须从小到大,不能存在此盘子上面有比它大的存在. 比如三个汉诺塔玩法: 理理思路,大体算法就是这个样: 那么算法就很清晰了. 不知道哪一天我又想把这个游戏扩展,我决定用四个类,让游戏的设计更条理一点: Temp类//临时存储圆盘对象,就是正在移动的圆盘 Torus类//圆盘类,每个圆盘都有 Cylinder类//圆柱类,每个圆柱都用,鼠标点击触发游戏 GameManage类//

codevs3145 汉诺塔游戏(经典中的经典,不能再经典了)

题目描述 Description 汉诺塔问题(又称为河内塔问题),是一个大家熟知的问题.在A,B,C三根柱子上,有n个不同大小的圆盘(假设半径分别为1-n吧),一开始他们都叠在我A上(如图所示),你的目标是在最少的合法移动步数内将所有盘子从A塔移动到C塔. 游戏中的每一步规则如下: 1. 每一步只允许移动一个盘子(从一根柱子最上方到另一个柱子的最上方) 2. 移动的过程中,你必须保证大的盘子不能在小的盘子上方(小的可以放在大的上面,最大盘子下面不能有任何其他大小的盘子) 如对于n=3的情况,一个

汉诺塔游戏

[题目描述] 在A.B.C三根柱子上,有n个不同大小的圆盘(设半径分别为1~n),一开始他们都叠在A上,你的目标是在最少的合法移动步数内将所有盘子从A塔移动到C塔. 游戏中的每一步规则如下: (1)每一步只允许移动一个盘子(从一根柱子最上方到另一个柱子的最上方): (2)移动的过程中,你必须保证大的盘子不能在小的盘子上方(小的可以放在大的上面,最大盘子下面不能有任何其他大小的盘子): 例如,对于n=3的情况,一个合法的移动序列式: 1 from A to C 2 from A to B 1 fr

递归,汉诺塔游戏

def hanoi(n,a,b,c): if n==1: print(n,a+'->'+c) else: hanoi(n-1,a,c,b) print(n,a+'->'+c) hanoi(n-1,b,a,c) 原文地址:https://www.cnblogs.com/fkfkfk/p/9180155.html