Answer
See the explanation
Work Step by Step
Here's an example of a Python program that solves the Tower of Hanoi problem using stacks:
```python
def tower_of_hanoi(n, source, auxiliary, destination):
if n == 1:
print(f"Move disk 1 from {source} to {destination}")
return
tower_of_hanoi(n-1, source, destination, auxiliary)
print(f"Move disk {n} from {source} to {destination}")
tower_of_hanoi(n-1, auxiliary, source, destination)
# Example usage
n = 3 # Number of disks
tower_of_hanoi(n, 'A', 'B', 'C')
```
In this program, the `tower_of_hanoi` function is a recursive function that takes four parameters: `n` (the number of disks), `source` (the tower where the disks are initially placed), `auxiliary` (the auxiliary tower), and `destination` (the tower where we want to move the disks to).
The base case of the recursion is when `n` is 1, in which case we simply print the move from the source tower to the destination tower.
For `n` greater than 1, we recursively solve the problem by moving `n-1` disks from the source tower to the auxiliary tower using the destination tower as the auxiliary tower. Then, we move the largest disk from the source tower to the destination tower. Finally, we recursively move the `n-1` disks from the auxiliary tower to the destination tower using the source tower as the auxiliary tower.
This recursive approach ensures that the disks are moved according to the rules of the Tower of Hanoi puzzle, where only one disk can be moved at a time and a larger disk can never be placed on top of a smaller disk.
The program will output the sequence of moves required to solve the Tower of Hanoi puzzle for the given number of disks.