1 条题解

  • 0
    @ 2025-12-16 21:08:30

    #include #include using namespace std;

    // 移动次数计数器 int step = 0;

    // 递归移动函数 void hanoi(int n, char from, char to, char aux) { if (n == 1) { step++; cout << "Move " << from << " to " << to << endl; return; } // 将 n-1 个盘子从 from 移到 aux,借助 to hanoi(n - 1, from, aux, to); // 将第 n 个盘子从 from 移到 to step++; cout << "Move " << from << " to " << to << endl; // 将 n-1 个盘子从 aux 移到 to,借助 from hanoi(n - 1, aux, to, from); }

    int main() { int n; cin >> n;

    // 输出最少移动次数:2^n - 1
    cout << (int)pow(2, n) - 1 << endl;
    
    // 执行移动
    hanoi(n, 'A', 'C', 'B');
    
    return 0;
    

    }

    • 1

    信息

    ID
    14522
    时间
    1000ms
    内存
    256MiB
    难度
    10
    标签
    递交数
    3
    已通过
    2
    上传者