DSAverse
Recursion
Loading Recursion Visualizer...
Recursion Tree
depth: 1f(n) = f(n-1) + f(n-2)
Initializing Sorting Algorithms...
Sorting
Trees
Graphs
Preparing interactive visualizations...
Recursion
Loading Recursion Visualizer...
Recursion Tree
depth: 1f(n) = f(n-1) + f(n-2)
Three elegant recursive steps solve an exponentially hard puzzle. Watch divide & conquer in action.
Adjust disks and click Play.
What are the 3 recursive steps of Tower of Hanoi (n disks, A→C using B)?
def tower_of_hanoi(n, source, destination, auxiliary):
if n == 1:
print(f"Move disk 1: {source} -> {destination}")
return
# Step 1: Move n-1 disks out of the way
tower_of_hanoi(n-1, source, auxiliary, destination)
# Step 2: Move the largest disk
print(f"Move disk {n}: {source} -> {destination}")
# Step 3: Move n-1 disks to destination
tower_of_hanoi(n-1, auxiliary, destination, source)
# 3 disks: 7 total movesfunction towerOfHanoi(n, source, destination, auxiliary) {
if (n === 1) {
console.log(`Move disk 1: ${source} → ${destination}`);
return;
}
towerOfHanoi(n-1, source, auxiliary, destination);
console.log(`Move disk ${n}: ${source} → ${destination}`);
towerOfHanoi(n-1, auxiliary, destination, source);
}
// 3 disks → 7 moves