proof1 2022-09-16 16:17 采纳率: 100%
浏览 27
已结题

汉诺塔问题 代码分析 C++

盲盒,非粘贴。

请分析一下我这个思路,做出更正。


// 汉诺塔  
#include <iostream>
#include <cstring>
using namespace std; 

void move(int s , char a , char b , char c){
    if (s==1) return;
    cout<<a<<"--"<<b<<endl;
    move(s-1,a,c,b);
    cout<<a<<"--"<<c<<endl;
           
}
 
int main(){
    int n=4;

        move(n,'a','b','c');  // 4层盘,从a杆开始,以b杆为中介,移动到c杆  
        
    return 0;
}

正纠结:是用两个打印输出,还是用两个调用?

  • 写回答

3条回答 默认 最新

  • 梦里逆天 2022-09-16 16:48
    关注
    // 汉诺塔  
    #include <iostream>
    #include <cstring>
    using namespace std;
    
    void move(int s , char a , char b , char c)
    {
        if (s==1)
        {
            cout<<a<<"--"<<c<<endl;
        }
        else
        {
            move(s-1, a, c, b);    // 借助c移动到b 
            cout<<a<<"--"<<c<<endl;
            move(s-1, b, a, c);     // 借助a移动到c
        }  
    }
     
    int main(){
        int n=4;
         move(n,'a','b','c');  // 4层盘,从a杆开始,以b杆为中介,移动到c杆  
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 9月27日
  • 已采纳回答 9月19日
  • 创建了问题 9月16日

悬赏问题

  • ¥15 Linux环境下CA证书更新问题
  • ¥15 sqlserver语句提取结果以外数据
  • ¥60 微信小程序如何上传QQ聊天文件
  • ¥300 开发的系统遭到无良商家的破解,请问如何防止再次发生,并追回损失
  • ¥15 java代码写在记事本上后在cmd上运行时无报错但又没生成文件
  • ¥15 关于#python#的问题:在跑ldsc数据整理的时候一直抱这种错误,要么--out识别不了参数,要么--merge-alleles识别不了参数(操作系统-linux)
  • ¥15 PPOCRLabel
  • ¥15 混合键合键合机对准标识
  • ¥100 现在不懂的是如何将当前的相机中的照片,作为纹理贴图,映射到扫描出的模型上
  • ¥15 安卓OpenCV人脸识别分类器加载