如何在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的函数的主要内容,如果未能解决你的问题,请参考以下文章

如何在Python中创建一个递归函数来创建一个映射Odoo 8关系字段记录的字典?

是否可以在球拍中创建匿名递归函数

通过 Python 在 Excel 中创建切片器对象

在递归函数 C++ 中创建向量

如何在excel表中计算递归函数?

如何在 Python 中创建 Windows 服务?