Эта программа 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

Спасибо за этот алгоритм
Пожалуйста 🙂