前言
汉诺塔研究了两三天,自己演算了好多遍才搞明白,自学连个问的人都没有,好算是搞明白了,如有相同困扰,请参照下表。
#include <stdio.h>
void hanoi(int n, char one, char two, char three);
void move(char x,char y);
int main()
{
int m;
printf("input the number of diskes:");
scanf("%d",&m);
printf("The step to move %d diskes: \n",m);
hanoi(m,'A','B','C');
}
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);
}
}
void move(char x,char y)
{
printf("%c --> %c\n",x,y);
}
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190502204307845.png)