一、思维导图
1层汉诺塔a-->b;
#include<stdio.h>
void hanoi(int n,char a,char b,char c);
int main()
{
int n;
printf("input the number of disk:");
scanf("%d",&n);
printf("the steps for %d disk are:\n",n);
hanoi(n,'a','b','c');
return 0;
}
void hanoi(int n,char a,char b,char c)
{
if(n==1)
printf("%c-->%c\n",a,b);
else
{
hanoi(n-1,a,c,b);
printf("%c-->%c\n",a,b);
hanoi(n-1,c,b,a);
}
}
二、简单公式理解
在hanoi函数中只要记住俩个变化
else中第一个hanoi函数第二个和第三个字母交换;
和else中第二个hanoi函数中第二个字母移到最后;
简单记忆即可;