jixiang021020 2021-07-07 21:06 采纳率: 75%
浏览 125
已采纳

编写汉诺塔程序c++

编写汉诺塔程序,加入打印递归过程,观察递归运算的机里。即递归进入的时候,打印这
是第几层,从递归退出时,打印递归深度。 c++

  • 写回答

1条回答 默认 最新

  • 暗夜无风 2021-07-07 21:26
    关注
    #include <iostream>
    using namespace std;
    #include <cmath>
    
    
    void visit(int n, char x, char y)
    {
        static int count = 1;
        //printf("%d:把编号%d从%c搬运到%c\n", count++, n, x, y);
    }
    
    void Hanoi(int n, char a, char b, char c, int depth)//实则真正操作的是a和c
    {
        cout << depth << endl;
        if (n == 1)
        {
            visit(1, a, c);
            return;
        }
    
    
        Hanoi(n - 1, a, c, b, depth + 1);//首先将a搬运至b,注意第一个和第三个操作数。
        visit(n, a, c);//将编号n的圆盘从A搬运到C
        Hanoi(n - 1, b, a, c, depth + 1);//接着将b搬运至c
        cout << depth << endl;
    }
    
    int main()
    {
        int n = 3;
        cout << "需要搬运的次数:" << pow(2, n) - 1 << endl;//搬运次数:2^n - 1
        Hanoi(n,'A', 'B', 'C', 0);
        
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 有偿求苍穹外卖环境配置
  • ¥15 代码在keil5里变成了这样怎么办啊,文件图像也变了,
  • ¥20 Ue4.26打包win64bit报错,如何解决?(语言-c++)
  • ¥15 clousx6整点报时指令怎么写
  • ¥30 远程帮我安装软件及库文件
  • ¥15 关于#自动化#的问题:如何通过电脑控制多相机同步拍照或摄影(相机或者摄影模组数量大于60),并将所有采集的照片或视频以一定编码规则存放至规定电脑文件夹内
  • ¥20 深信服vpn-2050这台设备如何配置才能成功联网?
  • ¥15 Arduino的wifi连接,如何关闭低功耗模式?
  • ¥15 Android studio 无法定位adb是什么问题?
  • ¥15 C#连接不上服务器,