#include <stdio.h> #define DISKS 4 // 10 max int stacks[3][DISKS]; int sps[3]; void init(int from) { int i; sps[2] = sps[1] = sps[0] = 0; for (i = 0; i < DISKS; i++) stacks[from][i] = DISKS - i; // disk radius sps[from] = DISKS; } void print(void) { int i, j, k; for (i = DISKS - 1; i >= 0; i--) { for (j = 0; j < 3; j++) { if (sps[j] > i) { for (k = 0; k < 10 - stacks[j][i]; k++) for (k = 0; k < 2 * stacks[j][i]; k++) for (k = 0; k < 10 - stacks[j][i]; k++) } else { } } } } void solve(int to, int from, int cnt) { int other = from ^ to ^ 3; if (!cnt) return; solve(other, from, cnt - 1); stacks[to][sps[to]++] = stacks[from][--sps[from]]; print(); solve(to, other, cnt - 1); } int main(void) { init(0); print(); solve(2, 0, DISKS); return 0; }
Standard input is empty
xx
xxxx
xxxxxx
xxxxxxxx
_________/\_________ _________/\_________ _________/\_________
xxxx
xxxxxx
xxxxxxxx xx
_________/\_________ _________/\_________ _________/\_________
xxxxxx
xxxxxxxx xx xxxx
_________/\_________ _________/\_________ _________/\_________
xxxxxx xx
xxxxxxxx xxxx
_________/\_________ _________/\_________ _________/\_________
xx
xxxxxxxx xxxxxx xxxx
_________/\_________ _________/\_________ _________/\_________
xx
xxxxxxxx xxxxxx xxxx
_________/\_________ _________/\_________ _________/\_________
xx xxxx
xxxxxxxx xxxxxx
_________/\_________ _________/\_________ _________/\_________
xx
xxxx
xxxxxxxx xxxxxx
_________/\_________ _________/\_________ _________/\_________
xx
xxxx
xxxxxx xxxxxxxx
_________/\_________ _________/\_________ _________/\_________
xxxx xx
xxxxxx xxxxxxxx
_________/\_________ _________/\_________ _________/\_________
xx
xxxx xxxxxx xxxxxxxx
_________/\_________ _________/\_________ _________/\_________
xx
xxxx xxxxxx xxxxxxxx
_________/\_________ _________/\_________ _________/\_________
xx xxxxxx
xxxx xxxxxxxx
_________/\_________ _________/\_________ _________/\_________
xxxxxx
xxxx xx xxxxxxxx
_________/\_________ _________/\_________ _________/\_________
xxxx
xxxxxx
xx xxxxxxxx
_________/\_________ _________/\_________ _________/\_________
xx
xxxx
xxxxxx
xxxxxxxx
_________/\_________ _________/\_________ _________/\_________