Рубрики

Java-программа для Ханойской башни

Ханойская башня — это математическая головоломка, в которой три стержня и n дисков. Цель головоломки состоит в том, чтобы переместить весь стек к другому стержню, следуя следующим простым правилам:
1) Одновременно можно перемещать только один диск.
2) Каждый ход состоит в том, чтобы извлечь верхний диск из одного из стеков и поместить его поверх другого стека, т.е. диск можно перемещать только в том случае, если это самый верхний диск в стеке.
3) Запрещается размещать диск поверх меньшего диска.

Джава

// Java рекурсивная программа для решения головоломки Ханойская башня

  

class GFG

{

    // Java рекурсивная функция для решения головоломки Ханойская башня

    static void towerOfHanoi(int n, char from_rod, char to_rod, char aux_rod)

    {

        if (n == 1)

        {

            System.out.println("Move disk 1 from rod " +  from_rod + " to rod " + to_rod);

            return;

        }

        towerOfHanoi(n-1, from_rod, aux_rod, to_rod);

        System.out.println("Move disk " + n + " from rod " +  from_rod + " to rod " + to_rod);

        towerOfHanoi(n-1, aux_rod, to_rod, from_rod);

    }

      

    // Метод драйвера

    public static void main(String args[])

    {

        int n = 4; // Количество дисков

        towerOfHanoi(n, \'A\', \'C\', \'B\');  // A, B и C - названия стержней

    }

}

Выход:

 Move disk 1 from rod A to rod B
 Move disk 2 from rod A to rod C
 Move disk 1 from rod B to rod C
 Move disk 3 from rod A to rod B
 Move disk 1 from rod C to rod A
 Move disk 2 from rod C to rod B
 Move disk 1 from rod A to rod B
 Move disk 4 from rod A to rod C
 Move disk 1 from rod B to rod C
 Move disk 2 from rod B to rod A
 Move disk 1 from rod C to rod A
 Move disk 3 from rod B to rod C
 Move disk 1 from rod A to rod B
 Move disk 2 from rod A to rod C
 Move disk 1 from rod B to rod C

Пожалуйста, обратитесь к полной статье о программе для Ханойской башни для более подробной информации!

Рекомендуемые посты:

Java-программа для Ханойской башни

0.00 (0%) 0 votes