如何在python中创建一个通过递归减少n的函数
Posted
技术标签:
【中文标题】如何在python中创建一个通过递归减少n的函数【英文标题】:How would I create a function that decrease the n with recursion in python 【发布时间】:2015-08-22 15:56:55 【问题描述】:我将如何创建一个函数,该函数将通过递归打印数字及其下方的所有数字,直到 1?
例如:
print_down_rec(5)
将返回
5
4
3
2
1
【问题讨论】:
你会写哪一部分?您是否能够编写一个获取参数并显示它的 Python 函数?那么缺少什么? 一定要用递归吗? 【参考方案1】:这可能是一个可能的解决方案:
def print_(n):
if n >= 1:
print n
print_(n-1)
【讨论】:
当然。您可以轻松地将其与其他解决方案进行比较。 现在去掉不必要的括号,看起来更简单:if n >= 1
。【参考方案2】:
这是我的版本。两行代码(如果我们计算定义,则为三行)。在检查我们是否应该再次运行该函数之前打印出新值。当您只需要从 5 数到 1 时没有太大区别,但是如果我们对值有一些逻辑并且如果值的数量远大于 5,则可以节省一些时间
def print_down_rec(n):
print n
print_down_rec(n-1) if n>1 else print "End"
【讨论】:
【参考方案3】:编写递归函数时,最好从基本情况开始。在这种情况下,当n==1
:
def print_down_rec(n):
if n==1:
print(n)
下一步是考虑一个归纳案例。对于大于 1 的n
,我们要显示n
,然后用n-1
调用函数:
else:
print(n)
print_down_rec(n-1)
最后,我们想用我们想要的参数调用函数。把它们放在一起:
def print_down_rec(n):
if n==1:
print(n)
else:
print(n)
print_down_rec(n-1)
print_down_rec(5)
【讨论】:
以上是关于如何在python中创建一个通过递归减少n的函数的主要内容,如果未能解决你的问题,请参考以下文章