河内塔的柜台

时间:2012-04-23 20:34:19

标签: java towers-of-hanoi

我为河内塔游戏编写了代码。我不知道如何为这个程序实现计数器运行的次数。任何帮助将不胜感激。

public class MainClass {
  public static void main(String[] args) {
    int nDisks = 3;
    doTowers(nDisks, 'A', 'B', 'C');
  }

  public static void doTowers(int topN, char from, char inter, char to) {
    if (topN == 1){
      System.out.println("Disk 1 from " + from + " to " + to);
    }else {
      doTowers(topN - 1, from, to, inter);
      System.out.println("Disk " + topN + " from " + from + " to " + to);
      doTowers(topN - 1, inter, from, to);
    }
  }
}

1 个答案:

答案 0 :(得分:10)

doTowers的返回类型从void更改为int,并将返回值设置为:

  1. 如果topN == 1,则返回1;
  2. 否则返回两个doTowers()加1的总和。
  3. 逻辑类似于问题的算法。好好搞清楚吧!

    您也可以使用静态全局变量,但这可能是糟糕的编程风格。