// Towers of Hanoi // A classic CS program that is often used to teach recursion #include using namespace std; int n; long moves = 0; char start, finish, temp; void moveTower(int n, char start, char finish, char temp); void moveSingleDisk(char start, char finish); int main() { cout << "How tall would you like your tower? "; cin >> n; moveTower( n, 'A', 'B', 'C'); cout << "This task took " << moves << " moves" << endl; system("pause"); } void moveSingleDisk(char start, char finish) { cout << "Move disk from tower " << start << " -> to tower " << finish << endl; moves++; } void moveTower(int n, char start, char finish, char temp) { if(n == 1) { moveSingleDisk(start, finish); } else { moveTower(n - 1, start, temp, finish); moveSingleDisk(start, finish); moveTower(n - 1, temp, finish, start); } }