爱问知识人 爱问教育 医院库

汉诺塔 递归算法的详细解释???请教高手

首页

汉诺塔 递归算法的详细解释???请教高手


        

提交回答

全部答案

    2018-11-02 01:43:33
  •   为了实现 n个盘从 借助c 从a 移动到 b
    思路如下:
    首先考虑极限当只有一个盘的时候 只要 盘直接从 a -> b即可
    那么当有2个盘的时候就只要先把1号盘从a -> c 然后 把2号盘 a->b 再 把 2好盘从 c - > b
    那么当有n个盘的时候你只要先把 n-1个 盘 借助 b 移动到 c 然后将 n号盘从 a -> b
    那么这时候只要将 n-1想办法从c移动到 b 借助 a 那么就可以先把 n-2个盘借助b移动到a
    然后 把n-1号盘从c-> b如此递归就是了!
    #include
    void mov(int n,char a,char b)
    {
    printf("盘%d : 从 %c ---> %c ",n,a,b);
    }
    void Hanoi(int n,char a,char b,char c)
    {
    if(n == 0) return ;
    Hanoi(n-1,a,c,b);
    mov(n,a,b);
    Hanoi(n-1,c,b,a);
    }
    int main()
    {
    Hanoi(2,'a','b','c');
    return 0;
    }。
      

    离***

    2018-11-02 01:43:33

类似问题

换一换

相关推荐

正在加载...
最新问答 推荐信息 热门专题 热点推荐
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):