导航:首页 > 游戏攻略 > 汉诺塔游戏攻略

汉诺塔游戏攻略

发布时间:2020-03-21 12:34:40

1、史上最难智力游戏汉诺塔

问题能描述清楚点吗


可以用递归的方法解决


A B C

三根柱子,将A上的n个盘移到C上分三步走:

将n-1个盘移到B

将第n个盘移到C

将n-1个盘从A移到C


那么n-1个盘怎么移动呢,就用用递归的方法一层层移动即可,编程很容易实现的。

2、5层汉诺塔游戏31步怎么移到另一个柱子上

5层汉诺塔游戏弄好四层后,先把上面的四个借助第三根柱子移到第二根柱子上,再把剩下的一个移到第三根柱子上,最后借助第一根柱子将第二根柱子上的移到第三根柱子上去。

汉诺塔,又称河内塔,是一款WP7平台上源于印度一个古老传说的益智类游戏。

汉诺塔:传说上帝创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上安大小顺序摞着64片黄金圆盘。上帝命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。

3、c语言 模拟汉诺塔游戏的解法

写一个函数用递归实现
用char代表盘子,ABC代表装盘子的平台
最终将A上所有盘子移到C上
void hanoi(int n, char A, char B, char C) {

if (n == 1) {

move(A, C); //只有一个盘子,把它从A移到C上
} else {
hanoi(n-1,A,C,B);//将A上n-1个盘子移到B上
move(A,C); //只有一个盘子,把A移到C上
hanoi(n-1,B,A,C);//将B上的盘子移到C上
}

}

4、汉诺塔游戏4个要几次,5、6个呢?

n个汉诺至少要 (2的n次方)-1 次

所以4个要15次,5个31次,6个63次

5、七层的汉诺塔游戏最少几步完成?

汉诺塔移动时,三个盘子要移动7步,这是固定的。当四个盘子时,它先要把最上面的三个盘子移动到另外一根针上(这时移动了7步),然后把第四个盘子移动到另一根针上(这时共移动了8步,三个盘子的7步加上第四个盘子的1步),最后再把那三个盘子移动到第四个盘子上面(又是7步),所以,四个盘子要移动15步。五个盘子也是同样,我们知道了四个盘子的移动步数是15步,那么5个盘子就是15+1+15等于31步。由此得出结论:每增加一个盘子,它的移动步数就增加原来步数的一倍加1。我们已经知道5个盘子移动31步,那么,6盘子就是31*2+1=63步。7盘子就是63*2+1=127步

6、汉诺塔游戏的程序设计和具体的程序

本人有个用易语言编写的实例,很直观。要的话可以发给你,不过你得安装易语言程序,顶一下国产编程软件吧,这款编程工具也不差的,用了就知道。
http://www.dywt.com.cn/vbs/index.asp

7、如何做一个C语言编程的汉诺塔游戏?要有源代码。

#include<stdio.h>
void move(char x,char y)
{
printf("%c-->%c\n",x,y);
}
void hanoi(int n,char one ,char two,char three)
{
if(n==1) move(one,three);
else
{
hanoi(n-1,one,three,two);
move(one,three);
hanoi(n-1,two,one,three);
}
}
main()
{
int m;
printf("input the number of disks:");
scanf("%d",&m);
printf("the step to moving %3d diskes:\n",m);
hanoi(m,'A','B','C');
}
算法介绍:
其实算法非常简单,当盘子的个数为n时,移动的次数应等于2^n – 1(有兴趣的可以自己证明试试看)。后来一位美国学者发现一种出人意料的简单方法,只要轮流进行两步操作就可以了。首先把三根柱子按顺序排成品字型,把所有的圆盘按从大到小的顺序放在柱子A上,根据圆盘的数量确定柱子的排放顺序:若n为偶数,按顺时针方向依次摆放 A B C;
若n为奇数,按顺时针方向依次摆放 A C B。
(1)按顺时针方向把圆盘1从现在的柱子移动到下一根柱子,即当n为偶数时,若圆盘1在柱子A,则把它移动到B;若圆盘1在柱子B,则把它移动到C;若圆盘1在柱子C,则把它移动到A。
(2)接着,把另外两根柱子上可以移动的圆盘移动到新的柱子上。即把非空柱子上的圆盘移动到空柱子上,当两根柱子都非空时,移动较小的圆盘。这一步没有明确规定移动哪个圆盘,你可能以为会有多种可能性,其实不然,可实施的行动是唯一的。
(3)反复进行(1)(2)操作,最后就能按规定完成汉诺塔的移动。
所以结果非常简单,就是按照移动规则向一个方向移动金片:
如3阶汉诺塔的移动:A→C,A→B,C→B,A→C,B→A,B→C,A→C
汉诺塔问题也是程序设计中的经典递归问题,下面我们将给出递归和非递归的不同实现源代码。

8、用才c++编程汉诺塔游戏

参考一下VC知识库的文章,也可以去CSDN下载
http://www.vckbase.com/document/viewdoc/?id=1784

9、汉诺塔游戏记录

#include <stdio.h>
#include <string.h>
void hanoi(int n,char a,char b,char c)
{
if(n==1) printf("%c->%c\n",a,c);
else
{

hanoi(n-1,a,c,b);
printf("%c->%c\n",a,c);
hanoi(n-1,b,a,c);
}

}
void main()
{
int n;
scanf("%d",&n);
hanoi(n,'A','B','C');
}

与汉诺塔游戏攻略相关的攻略