Рубрики

Программа C для Ханойской башни

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

C / C ++

#include <stdio.h>

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

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

{

    if (n == 1)

    {

        printf("\n Move disk 1 from rod %c to rod %c", from_rod, to_rod);

        return;

    }

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

    printf("\n Move disk %d from rod %c to rod %c", n, from_rod, to_rod);

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

}

  

int main()

{

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

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

    return 0;

}

Выход:

 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

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

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

Программа C для Ханойской башни

0.00 (0%) 0 votes