#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <algorithm>
#include <vector>
#include <queue>
#include <stack>
#include <map>
#include <set>
#include <cmath>
#include <time.h>
#include <iomanip>
#include <cctype>
#include <string>
using namespace std;
typedef long long ll;
const ll Mod = 1e9 + 7;


/*解题步骤(将塔A的n层移动至塔C)

1.将前n-1层移动至塔B(与主问题操作一致,递归即可)
2.将第n层移动至塔C
3.将那n-1层移动至塔C(与主问题操作一致,递归即可)

递归中目标柱,起始柱与工具柱会改变,改变传参即可
*/

void move(int n,char A,char B,char C){//层数,起始柱,工具柱,目标柱
    if(n==1){
        printf("%c→%c\n",A,C);      //直接起始柱→目标柱
    }
    else{
        move(n-1,A,C,B);//步骤1,此时B是目标柱,C是工具柱
        
        printf("%c→%c\n",A,C);      //步骤2

        move(n-1,B,A,C);//步骤3,此时C是目标柱,A是工具柱
    }
}
int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    int n;
    cin>>n
    
    char a='A',b='B',c='C';
    move(n,a,b,c);

    return 0;
}

输入:

4

输出:

A→C
B→C
A→B
C→A
C→B
A→B
A→C
B→C
B→A
C→A
B→C
A→B
A→C
B→C