2.4.河內塔 (Tower of Hanoi)
Introduction
規則如下
1.有三根竿子,例如編號為A、B和C,竿子上面可串中空圓盤。
2.於A竿子放入N個盤子開始,盤子由下至上變小。
3.一次只能移動一個盤子。
4.大盤子不能再小盤子上面。
5.目標將全部盤子移動到C竿子。
解法
程式碼
void move(int disks, int from, int to) { if(disks == 1) { cout << "Move from " << from << " to " << to << endl; return; } int relay = 6 - from - to; move(disks - 1, from, relay); move(1, from, to); move(disks - 1, relay, to); }
Last updated
Was this helpful?