0
0
DSA Cprogramming~20 mins

Tower of Hanoi Problem in DSA C - Practice Problems & Challenges

Choose your learning style9 modes available
Challenge - 5 Problems
🎖️
Tower of Hanoi Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
Predict Output
intermediate
2:00remaining
Output of Tower of Hanoi moves for 2 disks
What is the output of the following Tower of Hanoi function call for 2 disks?
DSA C
void towerOfHanoi(int n, char from_rod, char to_rod, char aux_rod) {
    if (n == 1) {
        printf("Move disk 1 from rod %c to rod %c\n", from_rod, to_rod);
        return;
    }
    towerOfHanoi(n - 1, from_rod, aux_rod, to_rod);
    printf("Move disk %d from rod %c to rod %c\n", n, from_rod, to_rod);
    towerOfHanoi(n - 1, aux_rod, to_rod, from_rod);
}

int main() {
    towerOfHanoi(2, 'A', 'C', 'B');
    return 0;
}
A
Move disk 2 from rod A to rod C
Move disk 1 from rod A to rod B
Move disk 1 from rod B to rod C
B
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
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
D
Move disk 1 from rod B to rod C
Move disk 2 from rod A to rod C
Move disk 1 from rod A to rod B
Attempts:
2 left
💡 Hint
Remember the recursive steps: move n-1 disks to auxiliary rod, move nth disk to target rod, then move n-1 disks from auxiliary to target rod.
🧠 Conceptual
intermediate
1:00remaining
Minimum number of moves for Tower of Hanoi
What is the minimum number of moves required to solve the Tower of Hanoi problem with 4 disks?
A8
B31
C16
D15
Attempts:
2 left
💡 Hint
The minimum moves follow the formula 2^n - 1, where n is the number of disks.
🔧 Debug
advanced
1:30remaining
Identify the error in Tower of Hanoi code
What error will the following Tower of Hanoi code produce when called with n=3? void towerOfHanoi(int n, char from_rod, char to_rod, char aux_rod) { if (n == 0) { printf("Move disk 1 from rod %c to rod %c\n", from_rod, to_rod); return; } towerOfHanoi(n - 1, from_rod, aux_rod, to_rod); printf("Move disk %d from rod %c to rod %c\n", n, from_rod, to_rod); towerOfHanoi(n - 1, aux_rod, to_rod, from_rod); }
AInfinite recursion leading to stack overflow
BNo output, function returns immediately
CMoves disks in wrong order but no error
DCompilation error due to missing return type
Attempts:
2 left
💡 Hint
Check the base case condition and what happens when n reaches 0.
Predict Output
advanced
2:00remaining
Output of Tower of Hanoi moves for 3 disks
What is the output of the Tower of Hanoi function call for 3 disks?
DSA C
void towerOfHanoi(int n, char from_rod, char to_rod, char aux_rod) {
    if (n == 1) {
        printf("Move disk 1 from rod %c to rod %c\n", from_rod, to_rod);
        return;
    }
    towerOfHanoi(n - 1, from_rod, aux_rod, to_rod);
    printf("Move disk %d from rod %c to rod %c\n", n, from_rod, to_rod);
    towerOfHanoi(n - 1, aux_rod, to_rod, from_rod);
}

int main() {
    towerOfHanoi(3, 'A', 'C', 'B');
    return 0;
}
A
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
B
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
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
Move disk 3 from rod A to rod C
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
D
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 C
Move disk 2 from rod B to rod A
Move disk 1 from rod C to rod A
Attempts:
2 left
💡 Hint
Trace the recursive calls carefully, moving n-1 disks to auxiliary, then nth disk to target, then n-1 disks from auxiliary to target.
🧠 Conceptual
expert
1:00remaining
Time complexity of Tower of Hanoi algorithm
What is the time complexity of the Tower of Hanoi algorithm for n disks?
AO(2^n)
BO(n)
CO(n^2)
DO(n!)
Attempts:
2 left
💡 Hint
Consider how the number of moves grows as the number of disks increases.