第壹,把a上的n-1個盤通過c移動到b。
第二,把a上的最下面的盤移到c。
第三,因為n-1個盤全在b上了,所以把b當做a重復以上步驟就好了。
#include<stdio.h>
void?move(int?n,char?a,char?b,char?c)
{
if(n==1)
printf("\t%c->%c\n",a,c);//當n只有1個的時候直接從a移動到c
else
{
move(n-1,a,c,b);//第n-1個要從a通過c移動到b
printf("\t%c->%c\n",a,c);
move(n-1,b,a,c);//n-1個移動過來之後b變開始盤,b通過a移動到c
}
}
int?main()
{
int?n;
printf("請輸入要移動的塊數:");
scanf("%d",&n);
move(n,'a','b','c');
return?0;
}