开发者社区> 问答> 正文

汉诺塔问题怎么用递归方式解啊

汉诺塔问题怎么用递归方式解啊

展开
收起
知与谁同 2018-07-18 20:26:58 1656 0
2 条回答
写回答
取消 提交回答
  • 云栖社区聚能聊、问答管理员~发福利、搞怪,八卦我来,论技术、发话题、写博客你上!
    hanoi(int n, int A, int B, int C)
    {
    if (n > 0)
    {
    hanoi(n-1, A, C, B);
    printf("move top disk from tower "+A+" to top of tower "+B);
    hanoi(n-1, C, B, A);
    }
    }
    2019-07-17 22:55:33
    赞同 展开评论 打赏
  • 社区管理员
    完整代码
    int main()
    {
    void hanoi(int n,char one,char two,char three);
    int m;
    cout<<"输入盘子数:"<<endl;
    cin>>m;
    hanoi(m,'A','B','C');
    }

    void hanoi(int n,char one,char two,char three)
    {
    void move(char x,char y);
    if (n == 1)
    {
    move(one,three);
    }
    else
    {
    hanoi(n-1,one,three,two);
    move(one,three);
    hanoi(n-1,two,one,three);
    }
    }

    void move(char x, char y)
    {
    cout<<x<<"-->"<<y<<endl;
    }
    2019-07-17 22:55:33
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
图解算法小抄 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载