- 论坛徽章:
- 0
|
关于子程序的变量如何变化,你可以参考cobol手册,或者搜索我以前的贴子。
这是我以前写的一个递归程序,针对汉诺塔移位的,就是有三个塔A,B,C,A有N个盘子,大的在下,小的在上,借助C, 把A的盘子移动到B, 同样顺序排列。
python写的
# Type "copyright", "credits" or "license" for more information.
>>> def move(a, b):
... print a,'----->', b
...
>>> move('A','B')
A -----> B
>>> def digui(n,a,b,c): #move a to b by c 移动a到b,借助c
... if (n==1):
... move(a,b)
... else:
... digui(n-1,a,c,b) #move a to c by b 移动a到c,借助b
... move(a,b)
... digui(n-1,c,b,a) #move c to b by a 移动c到b,借助a
...
>>> digui(3,'A','B','C')
A -----> B
A -----> C
B -----> C
A -----> B
C -----> A
C -----> B
A -----> B |
|