龙空技术网

递归求解汉诺塔

特斯汀软件测试 150

前言:

眼前兄弟们对“汉诺塔python代码递归”都比较关切,大家都需要分析一些“汉诺塔python代码递归”的相关知识。那么小编也在网摘上收集了一些关于“汉诺塔python代码递归””的相关文章,希望小伙伴们能喜欢,同学们一起来了解一下吧!

一、汉诺塔游戏

法则:每次移动一片,不管在哪根针上,小片必须在大片上面。

玩个游戏:

二、汉诺塔的代码:

x,y,z代表三根针。

三、使用递归编写一个十进制转换为二进制的函数(要求采用“取2取余”的方式,结果与调用bin()一样返回字符串形式)

四、 写一个函数get_digits(n),将参数n分解出每个位的数字并按顺序存放到列表中。举例:get_digits(12345) ==> [1, 2, 3, 4, 5]。

解题思路:利用除以10取余数的方式,每次调用get_digits(n//10),并将余数存放到列表中即可。要注意的是结束条件设置正确。

五、用回文求字符串,使用递归的方式来求解。

解题思路:利用递归每次索引前后两个字符进行对比,当start > end的时候,也正是首尾下标“碰面”的时候,即作为结束递归的条件。

六、使用递归编程求解以下问题:

有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?

解题思路:利用递归的方法,递归分为回推和递推两个阶段。要想知道第五个人岁数,需知道第四人的岁数,依次类推,推到第一人(10岁),再往回推。

标签: #汉诺塔python代码递归