#include<stdlib.h>
int count=0;
void Move(char getone,char putone)
{
printf("%c --> %c? \n",getone,putone);? ? //顯示步驟
count++;? ? //統(tǒng)計(jì)步數(shù)
}
void hannuota(int n,char a,char b,char c)
{
if(n==1)
Move(a,c);
else
{
hannuota(n-1,a,c,b);? //將 a 中除了底牌外其余小的的通過 c 暫時(shí)放在 b
Move(a,c);? ? ? ? ? ? //將 a 中底牌直接放在 c
hannuota(n-1,b,a,c);? //將 b 中的所有小的牌通過 a 放在 c 中底牌的上面
}
}
int main()
{
int m,g=0;
scanf("%d",&m);
hannuota(m,'a','b','c');
printf("移動次數(shù):%d\n",count);
return 0;
}