汉诺塔是一个比较经典的问题,有许多的资料可供参考,此处只做简略描述。需要详细了解的读者可以参考网上的其他资料。这里使用调用的方法实现问题的解决。
汉诺塔问题可以视为将n号盘子之上的所有盘子搬到c轴上,把n号盘子搬到b轴上,再把n-1个盘子从c轴上搬回到a轴上的问题。其中将n-1个盘子搬出去的操作与将n-1个盘子搬回来的操作实际上是一个盘子个数为n-1,改变了a,b,c轴的汉诺塔问题,则可以通过递归调用自身实现,递归出口为n=1时将盘子从a搬到b.
编写代码如下:
hanoi.h
static int j = 0;
static int i = 1;
void move(char x, int n, char z);
void hanoi(int n, char x, char y,