the standard outputs:
Input the number of plates: 4
move plate 1 from A tower to B
move plate 2 from A tower to C
move plate 1 from B tower to C
move plate 3 from A tower to B
move plate 1 from C tower to A
move plate 2 from C tower to B
move plate 1 from A tower to B
move plate 4 from A tower to C
move plate 1 from B tower to C
move plate 2 from B tower to A
move plate 1 from C tower to A
move plate 3 from B tower to C
move plate 1 from A tower to B
move plate 2 from A tower to C
move plate 1 from B tower to C
The codes:
#include <iostream>
#include <iomanip>
void hanoi(int n, char x, char y, char z);
int main()
{
char x = 'A', y = 'B', z = 'C';
std::cout << "Input the number of plates: ";
int n;
std::cin >> n ;
hanoi(n, x, y, z);
return 0;
}
void hanoi(int n, char x, char y, char z)
{
//describe the ouput gate of recurisve algorithm
if (n == 1){
std::cout << "move plate " << n << " from " << x << " tower to " << z << std::endl;
}else{
hanoi(n-1, x, z, y);
std::cout << "move plate " << n << " from " << x << " tower to " << z << std::endl;
hanoi(n-1, y, x, z);
}
}