codepad
[
create a new paste
]
login
|
about
Language:
C
C++
D
Haskell
Lua
OCaml
PHP
Perl
Plain Text
Python
Ruby
Scheme
Tcl
#include <iostream> int lineNumber; enum pole { onleft, middle, onright }; void towersOfHanoi (int n, pole start, pole temporary, pole destination) { if (n > 0) { towersOfHanoi(n-1, start, destination, temporary); lineNumber++; std::cout << lineNumber << ". Move the top from the " << start << " pole to the " << destination << " pole.\n"; towersOfHanoi(n-1, temporary, start, destination); } } void towersOfHanoi( int d) { lineNumber = 0; towersOfHanoi(d, onleft, middle, onright); } std::ostream& operator<< ( std::ostream& os, pole p) { switch(p) { case onleft: os << "left"; break; case middle: os << "middle"; break; case onright: os << "right"; break; } return os; } int main() { towersOfHanoi(3); return 0; }
Private
[
?
]
Run code
Submit