Skip to content

Commit 0ce32fd

Browse files
authored
Merge pull request #75 from Sachin-Liyanage/main
Program for Tower of Hanoi
2 parents ca35182 + 7b2def2 commit 0ce32fd

File tree

1 file changed

+103
-0
lines changed

1 file changed

+103
-0
lines changed

tower_of_hanoi.java

Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
// JAVA recursive function to
2+
// solve tower of hanoi puzzle
3+
import java.util.*;
4+
import java.io.*;
5+
import java.math.*;
6+
class GFG
7+
{
8+
static void towerOfHanoi(int n, char from_rod,
9+
char to_rod, char aux_rod)
10+
{
11+
if (n == 1)
12+
{
13+
System.out.println("Move disk 1 from rod "+
14+
from_rod+" to rod "+to_rod);
15+
return;
16+
}
17+
towerOfHanoi(n - 1, from_rod, aux_rod, to_rod);
18+
System.out.println("Move disk "+ n + " from rod " +
19+
from_rod +" to rod " + to_rod );
20+
towerOfHanoi(n - 1, aux_rod, to_rod, from_rod);
21+
}
22+
23+
// Driver code
24+
public static void main(String args[])
25+
{
26+
int n = 4; // Number of disks
27+
towerOfHanoi(n, 'A', 'C', 'B'); // A, B and C are names of rods
28+
}
29+
}
30+
31+
32+
/*
33+
-- Output --
34+
Move disk 1 from rod A to rod B
35+
Move disk 2 from rod A to rod C
36+
Move disk 1 from rod B to rod C
37+
Move disk 3 from rod A to rod B
38+
Move disk 1 from rod C to rod A
39+
Move disk 2 from rod C to rod B
40+
Move disk 1 from rod A to rod B
41+
Move disk 4 from rod A to rod C
42+
Move disk 1 from rod B to rod C
43+
Move disk 2 from rod B to rod A
44+
Move disk 1 from rod C to rod A
45+
Move disk 3 from rod B to rod C
46+
Move disk 1 from rod A to rod B
47+
Move disk 2 from rod A to rod C
48+
Move disk 1 from rod B to rod C
49+
50+
*/
51+
52+
/*
53+
-- Output --
54+
55+
Tower of Hanoi Solution for 4 disks:
56+
57+
A: [4, 3, 2, 1] B: [] C: []
58+
59+
Move disk from rod A to rod B
60+
A: [4, 3, 2] B: [1] C: []
61+
62+
Move disk from rod A to rod C
63+
A: [4, 3] B: [1] C: [2]
64+
65+
Move disk from rod B to rod C
66+
A: [4, 3] B: [] C: [2, 1]
67+
68+
Move disk from rod A to rod B
69+
A: [4] B: [3] C: [2, 1]
70+
71+
Move disk from rod C to rod A
72+
A: [4, 1] B: [3] C: [2]
73+
74+
Move disk from rod C to rod B
75+
A: [4, 1] B: [3, 2] C: []
76+
77+
Move disk from rod A to rod B
78+
A: [4] B: [3, 2, 1] C: []
79+
80+
Move disk from rod A to rod C
81+
A: [] B: [3, 2, 1] C: [4]
82+
83+
Move disk from rod B to rod C
84+
A: [] B: [3, 2] C: [4, 1]
85+
86+
Move disk from rod B to rod A
87+
A: [2] B: [3] C: [4, 1]
88+
89+
Move disk from rod C to rod A
90+
A: [2, 1] B: [3] C: [4]
91+
92+
Move disk from rod B to rod C
93+
A: [2, 1] B: [] C: [4, 3]
94+
95+
Move disk from rod A to rod B
96+
A: [2] B: [1] C: [4, 3]
97+
98+
Move disk from rod A to rod C
99+
A: [] B: [1] C: [4, 3, 2]
100+
101+
Move disk from rod B to rod C
102+
A: [] B: [] C: [4, 3, 2, 1]
103+
*/

0 commit comments

Comments
 (0)