C # recursive solution to the tower of Hanoi (Hanoi ),
Using System;
Using System. Collections. Generic;
Using System. Linq;
Using System. Text;
Namespace MyExample_Hanoi _
{
Class Program
{
Static void Main (string [] args)
{
HanoiCalculator c = new HanoiCalculator ();
Console. WriteLine (c. CalculateHanoi (64); // you can change the number of disks in parentheses.
}
}
Class HanoiCalculator
{
Public ulong CalculateHanoi (int count) // count: Number of dishes
{
Ulong stepForOnlyCurrentDish = 1; // it takes only one step to move a plate
If (count = 1)
{
Return stepForOnlyCurrentDish; // at least one plate is required for the tower.
}
Ulong totalSteps = stepForOnlyCurrentDish + CalculateHanoi (count-1) * 2; // stepForOnlyCurrentDish: Move "the last" big plate "as long as one step + the plates on the big plate need to constitute the steps required for the tower of Hanoi (recursive) + move those plates back
Return totalSteps;
}
}
}
// In this example, Meng Ge (Liu tie Meng) (also called my formal teacher) spoke about it. I added some comments based on my own understanding and communicated with netizens, make common progress !;