数据结构与算法python版答案,数据结构与算法python版 期末考试
递归引入了递归的两个特征:调用自身和结束条件,例如:
定义函数(x):
如果x 0:
打印(x)
函数(x-1)
func(3)的执行结果如下:
三
2
1这里需要注意的是,如果你把打印出来的语句放在下面,如下面的代码所示,结果会完全不同。
定义函数(x):
如果x 0:
函数(x-1)
打印(x)
func(3)的执行结果如下:
一个
2
32.河内塔问题。河内塔问题:
n=2时的操作步骤:
原情况如下。目标是将A和c都移动。
第一步:把A上的小盘从A移到b。
第二步:把A盘上的大盘子移到c盘上。
第三步:将B上的小盘移到C上,结束。
当有n块板时,思路是把A上的n-1块板看成小板,把A的底板看成大盘,和n=2时的思路一样。
步骤1:将A上的n-1个磁盘移动到b上。
第二步:移动A到C板上的底板。
第三步:将B上的n-1个磁盘移到c盘上。算法实现如下:def hanoi(n,a,b,c):
通过b将n个磁盘从A移动到C。
:参数n:
:参数a:
:参数b:
:参数c:
:返回:
如果n 0:
河内(n-1,a,c,b)
打印(将{n}从{a}移动到{c})
河内(n-1,b,a,c)
if __name__==__main__ :
打印(- n=2 -)
河内(2, A , B , C )
打印(- n=3 -)
河内(3, A , B , C )
打印(- n=4 -)
hanoi(4, A , B , C )的执行结果如下:
- n=2 -
将1从A移动到B
将2从A移动到C
将1从B移动到C
- n=3 -
将1从A移动到C
将2从A移动到B
将1从C移动到B
将3从A移动到C
将1从B移动到A
将2从B移动到C
将1从A移动到C
- n=4 -
将1从A移动到B
将2从A移动到C
将1从B移动到C
将3从A移动到B
将1从C移动到A
将2从C移动到B
将1从A移动到B
将4从A移动到C
将1从B移动到C
将2从B移动到A
将1从C移动到A
将3从B移动到C
将1从A移动到B
将2从A移动到C
将1从
转载请联系作者取得转载授权,否则将追究法律责任。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。