时间:2021-05-19
以前学东西不扎实,现在捡捡也好,汉诺塔本是C语言开门就学的东西,不过上课那会儿真心听不懂,直到大二了,才明白那是咋回事,我感觉的编程,真的是一张窗户纸,不过捅破要花时间理解吸收。
题目描述:有一个塔,塔内有A,B,C三个柱子。起初,A柱上有n个盘子,依次由大到小、从下往上堆放,要求将它们全部移到C柱上;在移动过程中可以利用B柱,但每次只能移到一个盘子,且必须使三个柱子上始终保持大盘在下,小盘在上的状态。要求编程输出移动的步骤。
代码如下:
复制代码 代码如下:
#include<stdio.h>
int move(char one,char two)//这个函数就是为了输出的结果直观显示出来,比如只有一个盘子时,输出a-->c. 就这样,把移动n个盘子每个步骤显示出来
{
printf("%c --> %c\n",one,two);
}
int hanoi(int n,char one,char two,char three)//是核心函数了
{
int move(char one,char two);
if(n==1)//当只有一个盘子时,直接从a柱移到c柱就好,也是递归程序的一个出口
move(one,three);
else{ //盘子大于一时
hanoi(n-1,one,three,two);//先借助c柱把上面的n-1个盘子从a柱全部移动到b柱
move(one,three); //这时a柱只剩下一个盘子了,移动到c柱即可
hanoi(n-1,two,one,three);//将b柱剩下的n-1个盘子借助a柱移动到c柱,任务也就完成了
}
}
int main()
{
int n;
char a,b,c;
while(scanf("%d",&n)!=EOF)//可以输入多组数据检验结果
hanoi(n,'a','b','c');
}
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例为大家分享了python实现汉诺塔游戏的具体代码,供大家参考,具体内容如下一.汉诺塔汉诺塔问题是一个经典的递归问题,对于这个问题,我们可以把它简单的去看
汉诺塔问题是学习递归的入门问题,这里用C#简单实现了一个汉诺塔之间传递盘子的小程序通过简单绘图实现盘子在几个塔之间的转换:namespace汉诺塔{//盘子类c
汉诺塔:汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。下面是c#实现汉诺塔示例复制代码代码如下:usingSystem;usingSystem.Co
程序如下:复制代码代码如下:ViewCode/**Hanoi塔游戏问题描述:*汉诺塔:汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。*大梵天创造世界
学习python遇到的第一个问题:汉诺塔问题的实现。首先是不知道什么是汉诺塔问题,然后是不知道怎么实现。于是百度了下,结果如下:汉诺塔:汉诺塔(又称河内塔)问题