#include<stdio.h>
int count = 0;//记录移动次数
void move(int n, char a, char b, char c)
{
if (n == 1)
{
printf(" 第%d个盘子: %c->%c\n", n, a, c); //当n只有1个的时候直接从a柱移动到c柱
count++;//次数加1
}
else
{
move(n - 1, a, c, b); //把a柱的n-1个盘子通过c柱移动到b柱
printf(" 第%d个盘子: %c->%c\n",n, a, c); //把a柱的最后1个盘(最大的盘)移动到c柱
count++;//次数加1
move(n - 1, b, a, c); //吧b柱上面的n-1个盘通过a柱移动到c柱
}
}
int main()
{
int n;
printf("请输入盘子数:");
scanf_s("%d", &n);
move(n, 'a', 'b', 'c');
printf("\n总共移动次数:%d\n", count);
}