第一次写发现超时了,于是选择了30和50来打表

#include <bits stdc++.h>
using namespace std;
unsigned long long a[9];
unsigned long long sum;
void Hanoi(int n,char pre,char zhong,char mu){
    if(n==30){
        a[(pre-'A')*3+zhong-'A']+=238609299;
        a[(pre-'A')*3+mu-'A']+=119304657;
        a[(zhong-'A')*3+pre-'A']+=119304642;
        a[(zhong-'A')*3+mu-'A']+=238609299;
        a[(mu-'A')*3+pre-'A']+=238609284;
        a[(mu-'A')*3+zhong-'A']+=119304642;
        sum+=1073741823;
        return ;
    }
    if(n==50){
        a[(pre-'A')*3+zhong-'A']+=250199979298369;
        a[(pre-'A')*3+mu-'A']+=125099989649197;
        a[(zhong-'A')*3+pre-'A']+=125099989649172;
        a[(zhong-'A')*3+mu-'A']+=250199979298369;
        a[(mu-'A')*3+pre-'A']+=250199979298344;
        a[(mu-'A')*3+zhong-'A']+=125099989649172;
        sum+=1125899906842623;
        return ;
    }
    if(n==1){
        a[(pre-'A')*3+mu-'A']++;
        sum++;
        return ;
    }
    Hanoi(n-1,pre,mu,zhong);
    a[(pre-'A')*3+mu-'A']++;
    sum++;
    Hanoi(n-1,zhong,pre,mu);
}
int main(){
    ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
    int n;
    cin >> n;
    Hanoi(n,'A','B','C');
    cout << "A->B:" << a[1] << "\n";
    cout << "A->C:" << a[2] << "\n";
    cout << "B->A:" << a[3] << "\n";
    cout << "B->C:" << a[5] << "\n";
    cout << "C->A:" << a[6] << "\n";
    cout << "C->B:" << a[7] << "\n";
    cout << "SUM:" << sum << "\n";
    system("pause");
    return 0;
}