top1编程
← 返回题目
题解

汉诺塔问题

1 条题解

  • 0
    @ 2026-7-28 22:45:19
    #include <bits/stdc++.h>
    using namespace std;
    void hanoi(int k, char x, char y, char z)//输出k层汉诺塔从x杆移动到y杆借助z杆的解法
    {
        if(k == 0)
            return;
        hanoi(k-1, x, z, y);//将k-1层汉诺塔从x杆移动到z杆借助y杆 
        cout<<x<<"->"<<k<<"->"<<y<<endl;//输出将k号圆盘从x移动到y 
        hanoi(k-1, z, y, x);//将k-1层汉诺塔从z杆移动到y杆借助x杆 
    }
    int main()
    {
        int n;
        char a, b, c;
        cin>>n>>a>>b>>c; 
        hanoi(n, a, b, c);
        return 0;
    }
    
    • 1