diff --git a/src/main/java/com/thealgorithms/recursion/TowerOfHanoi.java b/src/main/java/com/thealgorithms/recursion/TowerOfHanoi.java new file mode 100644 index 000000000000..a1e28f4038d3 --- /dev/null +++ b/src/main/java/com/thealgorithms/recursion/TowerOfHanoi.java @@ -0,0 +1,17 @@ +package com.thealgorithms.recursion; + +/*Tower of Hanoi Problem on Wikipedia - https://en.wikipedia.org/wiki/Tower_of_Hanoi */ + +public final class TowerOfHanoi { + private TowerOfHanoi() { + } + public static void solveHanoi(int n, char src, char dest, char aux) { + if (n == 1) { + System.out.println("Move disk 1 from " + src + " to " + dest); + return; + } + solveHanoi(n - 1, src, aux, dest); + System.out.println("Move disk " + n + " from " + src + " to " + dest); + solveHanoi(n - 1, aux, dest, src); + } +} diff --git a/src/test/java/com/thealgorithms/recursion/TowerOfHanoiTest.java b/src/test/java/com/thealgorithms/recursion/TowerOfHanoiTest.java new file mode 100644 index 000000000000..f68d9bd56508 --- /dev/null +++ b/src/test/java/com/thealgorithms/recursion/TowerOfHanoiTest.java @@ -0,0 +1,11 @@ +package com.thealgorithms.recursion; + +import org.junit.jupiter.api.Test; + +class TowerOfHanoiTest { + + @Test + void testSolve() { + TowerOfHanoi.solveHanoi(3, 'A', 'B', 'C'); + } +}