Python递归事实

时间:2017-11-17 02:04:13

标签: python function recursion

我需要帮助知道在python

中的递归函数中以下哪些是正确的
  1. 问题的递归解决方案总是更可取
  2. 递归函数调用自身
  3. 每次递归调用都会缩小问题的大小
  4. 递归函数可以有一个或多个基本情况
  5. 递归函数可以有一个或多个递归步骤。
  6. 我能否回答一下这些是真的。多于一个可以是正确的。

    这是我过去在我的主题中的一篇论文,但我无法得到5的正确答案,我想知道这是真是假。这不是作业,我不是要求得到答案,而是要进一步了解python中的递归函数。

    谢谢!

1 个答案:

答案 0 :(得分:0)

1)递归解决方案有一些好处。通常它更具可读性,并且在代码行方面更小。如果它不起作用,它几乎总是难以调试。当它比非递归解决方案运行得更快时,它通常更可取(参见合并排序)。

2)根据定义。

3)正确 - 递归的目的是将每个问题都减少到一个基本情况,这个问题有一个简单的解决方案。

4)也是如此。请参阅以下实施:

def pow3(input):
   if input//3 is not input/3:
       return False
   elif input is 1:
       return True
   else:
       return pow3(input/3)

5)根据问题的措辞,"一个更多的递归步骤",当然是正确的。每个递归函数都必须有一个递归步骤,因此每个递归函数都必须有一个或多个递归步骤。

随时提出以下任何其他问题。