zoukankan      html  css  js  c++  java
  • 汉诺塔学习笔记,有不正确的地方请小伙伴们指正~·~

    1*  n=3.abc;
    2*  n-1=2,acb;
    3*  n-1=1,abc
     
     
    1*    n=3,执行hanoi(n-1,A,C,B);   
    =>2*  n-1=2,acb执行hanoi(n-1,A,C,B);
    =>3*  n-1=1,abc执行if(n==1)    输出(n=1)A-》c
    返回2*   acb                   输出  2    a-》b执行 hanoi(n-1,B,A,C);
     =》n-1=1,cab                 输出(n=1)c-》b
    返回1*   abc                   输出   3   a->c
    顺序执行 hanoi(n-1,B,A,C);=》n-1=2  ,bac (4*)  顺序执行hanoi(n-1,A,C,B) ;
    =》n-1=1,bca                  输出  (n=1)b->a 
    返回4*   n=2 ,bac             输出    2    b-》c
    顺序执行 hanoi(n-1,B,A,C); =》n-1=1,abc 
                                   输出    (n=1)a-》c
     
     
    ps:为什么要返回4*?
    猜想:n=2时,保留下来,去执行 hanoi(n-1,A,C,B);
          n-1=1,
         之后返回执行n=2
         也可以理解为从1开始执行,像盖金字塔一样
     
  • 相关阅读:
    单例模式
    设计模式
    C#判断Textbox是否为数字
    C#判断输入的是否是汉字
    C#如何测试代码运行时间
    网上 server2008数据库恢复方法
    C# 控件的缩写
    SQLite主键自增代码
    Sqlite数据库联合查询及表复制等详述
    C#中超链接方法
  • 原文地址:https://www.cnblogs.com/fanfusuzi/p/6853128.html
Copyright © 2011-2022 走看看