汉诺塔的perl实现
时间:2009-02-21 来源:Coolriver
后来,这个传说就演变为汉诺塔游戏:
1.有三根杆子A,B,C。A杆上有若干碟子
2.每次移动一块碟子,小的只能叠在大的上面
3.把所有碟子从A杆全部移到C杆上
经过研究发现,汉诺塔的破解很简单,就是按照移动规则向一个方向移动金片:
如3阶汉诺塔的移动:A→C,A→B,C→B,A→C,B→A,B→C,A→C
此外,汉诺塔问题也是程序设计中的经典递归问题。
看完才想起来,当时做了一个C语言实现的演示。N久没用过C写过程序了,都忘了。 想了一下感觉这个用perl实现很容易。就简单弄出来一个过程:
#!/usr/bin/perl |
Move disk #1 from A to C.
Move disk #2 from A to B,
Move disk #1 from C to B.
Move disk #3 from A to C,
Move disk #1 from B to A.
Move disk #2 from B to C,
Move disk #1 from A to C.
Move disk #4 from A to B,
Move disk #1 from C to B.
Move disk #2 from C to A,
Move disk #1 from B to A.
Move disk #3 from C to B,
Move disk #1 from A to C.
Move disk #2 from A to B,
Move disk #1 from C to B.
Move disk #5 from A to C,
Move disk #1 from B to A.
Move disk #2 from B to C,
Move disk #1 from A to C.
Move disk #3 from B to A,
Move disk #1 from C to B.
Move disk #2 from C to A,
Move disk #1 from B to A.
Move disk #4 from B to C,
Move disk #1 from A to C.
Move disk #2 from A to B,
Move disk #1 from C to B.
Move disk #3 from A to C,
Move disk #1 from B to A.
Move disk #2 from B to C,
Move disk #1 from A to C.