汉诺塔问题,思想是用递归的办法,每次处理的过程是将n-1个先从A移动到B,再将最大的那个从B移动到C,再将B上的n-1个移动到C。代码
#include<stdio.h>
void Hanoi(int n,char a,char b,char c)
{
if(n==1)
printf("move %c to %c\n",a,c);
else
{
Hanoi(n-1,a,c,b);
printf("move %c to %c\n",a,c);
Hanoi(n-1,b,a,c);
}
}
void main(void)
{
int n;
char A='1',B='2',C='3';
printf("Enter the number of disks:");
scanf("%d",&n);
printf("The solution for %d :\n",n);
Hanoi(n,A,B,C);
}