2012-04-23 2 views
3

Я написали код для Towers Of Hanoi. Я не знаю, как реализовать счетчик для этой программы, сколько раз она выполнялась. Любая помощь будет высоко ценится.Counter for 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); 
    } 
    } 
} 
+0

Да, я только что присоединился к этому сайту. Сожалею. –

+0

@John Smith Удачи. :) – biziclop

ответ

10

Изменить тип возвращаемого doTowers из void в int и установить возвращаемое значение:

  1. если topN == 1, возвращает 1;
  2. еще возвращает сумму двух doTowers() плюс 1.

Логика похож на алгоритм задачи. Получайте удовольствие, выясняя это!

Вы также можете использовать статическую глобальную переменную, но это, возможно, плохой стиль программирования.

+0

Извините, не могли бы вы отправить код. Я не понимал, что вы имеете в виду. Спасибо –

+0

Хорошо Спасибо! Я заработал! Спасибо за помощь. –

+2

@JohnSmith: Это дух и веселье! Поздравляю :) –