Программа на C# для демонстрации Ханойской башни.

Эта программа C# использует рекурсивную функцию и решает ханойскую башню.

Ханойская башня-это математическая головоломка. Он состоит из трех стержней и ряда дисков различных размеров, которые могут скользить на любой стержень. Головоломка начинается с дисков в аккуратной стопке в порядке возрастания размера на одном стержне, самый маленький в верхней части. Мы должны получить такую же стопку на третьем стержне.

Вот исходный код программы C# для демонстрации башни Ханоя. Программа C# успешно компилируется и выполняется с помощью Microsoft Visual Studio. Выходные данные программы также показаны ниже.

/*
 * C# Program to Demonstrate Tower Of Hanoi
 */
using System;
class TowerOfHanoi
{
    int m_numdiscs;
    public TowerOfHanoi()
    {
        numdiscs = 0;
    }
    public TowerOfHanoi(int newval)
    {
        numdiscs = newval;
    }
    public int numdiscs
    {
        get
        {
            return m_numdiscs;
        }
        set
        {
            if (value > 0)
                m_numdiscs = value;
        }
     }
     public void movetower(int n, int from, int to, int other)
     {
         if (n > 0)
         {
             movetower(n - 1, from, other, to);
             Console.WriteLine("Move disk {0} from tower {1} to tower {2}", 
                                n, from, to);
             movetower(n - 1, other, to, from);
         }
     }
}
class TowersOfHanoiApp
{
    public static int Main()
    {
        TowerOfHanoi T = new TowerOfHanoi();
        string cnumdiscs;
        Console.Write("Enter the number of discs: ");
        cnumdiscs = Console.ReadLine();
        T.numdiscs = Convert.ToInt32(cnumdiscs);
        T.movetower(T.numdiscs, 1, 3, 2);
        Console.ReadLine();
        return 0;
    }
}

1

В этой программе на C# мы считываем количество дисков, используя переменную cnumdiscs . Выполните функцию movetower(), передав в качестве аргумента значения переменных numdiscs , 1, 3, 2.

Ханойская башня-это математическая головоломка. Он состоит из трех стержней, а также ряда дисков различных размеров, которые могут скользить на любой стержень. Головоломка начинается с дисков в аккуратной стопке в порядке возрастания размера на одном стержне, самый маленький в верхней части. Мы должны получить такую же стопку на третьем стержне.

Мы считываем количество дисков с помощью переменной cnumdiscs. Выполните функцию movetower(), передав значения переменных numdiscs, 1, 3, 2 в качестве аргумента. Используя if проверяем условие значение переменной n больше 0. Если условие истинно, то выполните инструкцию, рекурсивно перемещая диски.

Тестовые случаи во время выполнения

Enter the Number of Disks : 2
Move Disk 1 from Tower 1 to Tower 2
Move Disk 1 from Tower 1 to Tower 3
Move Disk 1 from Tower 2 to Tower 3
Обновлено: 04.01.2020 — 18:43

2 комментария

Оставить комментарий
  1. Самасса Секоу

    Спасибо за этот алгоритм

    1. Пожалуйста 🙂

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.