Python进阶练习题:相互递归【难度:2级】:

Mutual Recursion允许我们利用常规递归的乐趣(函数调用自身直到终止条件)并将其应用于多个相互调用的函数!

让我们使用Hofstadter女性和男性序列来演示这种技术。你需要创建两个函数FM,以便满足以下公式:

F(0)= 1
M(0)= 0
F(n)= n  -  M(F(n  -  1))
M(n)= n  -  F(M(n  -  1))

不要担心负数,“n”总是大于或等于零。

你*不得不担心性能,相互递归占用了大量的堆栈空间(并且效率非常低),因此你可能必须找到一种方法来使你的解决方案消耗更少的堆栈空间(和时间)。祝好运 :)

Hofstadter维基百科引用http://en.wikipedia/wiki/Hofstadter_sequence#Hofstadter_Female_and_Male_sequences

最佳答案合集(多种解法):

点击查看答案

更多关联题目:

Disarium Number(特殊号码系列#3)【难度:1级】–景越Python编程训练之挑战1000道Python面试题(含答案)
编程题:二叉树比较【难度:2级】–景越Python编程训练之挑战1000道Python面试题(含答案)
单词搜索网格【难度:3级】–景越Python编程训练之挑战1000道Python面试题(含答案)

免责申明:

本博客所有编程题目及答案均收集自互联网,主要用于供网友学习参考,如有侵犯你的权益请联系管理员及时删除,谢谢
题目收集至https://www.codewars/

更多推荐

Python进阶练习题:相互递归【难度:2级】--景越Python编程实例训练营,不同难度Python习题,适合自学Python的新手进阶