diff --git a/Tower_Of_Hanoi/Tower_of_Hanoi.cs b/Tower_Of_Hanoi/Tower_of_Hanoi.cs new file mode 100644 index 0000000000..8e190dfc0c --- /dev/null +++ b/Tower_Of_Hanoi/Tower_of_Hanoi.cs @@ -0,0 +1,93 @@ +/* +C# recursive program to solve +tower of hanoi puzzle */ +using System; + +class geek +{ + + // C# recursive function to solve Tower of Hanoi puzzle + static void towerOfHanoi(int n, char from_rod, char to_rod, char aux_rod) + { + if (n == 1) + { + Console.WriteLine("Move disk 1 from rod " + from_rod + " to rod " + to_rod); + return; + } + towerOfHanoi(n-1, from_rod, aux_rod, to_rod); + Console.WriteLine("Move disk " + n + " from rod "+ from_rod + " to rod " + to_rod); + towerOfHanoi(n-1, aux_rod, to_rod, from_rod); + } + + // Driver method + public static void Main() + { + // Number of disks + int n; + String val; + + //Input taken + val = Console.ReadLine(); + n = Convert.ToInt32(val); + + // A, B and C are names of rods + towerOfHanoi(n, 'A', 'C', 'B'); + } +} + +/* +Input for Test Case 1: +4 //n = 4 +Output for Test Case 1: +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 +*/ +/* +Input for Test Case 2: +5 //n = 5 +Output for Test case 2: +Move disk 1 from rod A to rod C +Move disk 2 from rod A to rod B +Move disk 1 from rod C to rod B +Move disk 3 from rod A to rod C +Move disk 1 from rod B to rod A +Move disk 2 from rod B to rod C +Move disk 1 from rod A to rod C +Move disk 4 from rod A to rod B +Move disk 1 from rod C to rod B +Move disk 2 from rod C to rod A +Move disk 1 from rod B to rod A +Move disk 3 from rod C to rod B +Move disk 1 from rod A to rod C +Move disk 2 from rod A to rod B +Move disk 1 from rod C to rod B +Move disk 5 from rod A to rod C +Move disk 1 from rod B to rod A +Move disk 2 from rod B to rod C +Move disk 1 from rod A to rod C +Move disk 3 from rod B to rod A +Move disk 1 from rod C to rod B +Move disk 2 from rod C to rod A +Move disk 1 from rod B to rod A +Move disk 4 from rod B to rod C +Move disk 1 from rod A to rod C +Move disk 2 from rod A to rod B +Move disk 1 from rod C to rod B +Move disk 3 from rod A to rod C +Move disk 1 from rod B to rod A +Move disk 2 from rod B to rod C +Move disk 1 from rod A to rod C +*/