我如何在python中创建一个减少n递归的函数

时间:2015-06-08 08:52:25

标签: python recursion

我如何创建一个函数来打印数字及其下面的所有数字,直到1递归?

例如:

print_down_rec(5)

将返回

5
4
3
2
1

3 个答案:

答案 0 :(得分:1)

这可能是一个可能的解决方案:

def print_(n):
        if n >= 1:
            print n
            print_(n-1)

答案 1 :(得分:1)

在编写递归函数时,从基本情况开始是个好主意。在这种情况下,这会在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)

答案 2 :(得分:0)

这是我的版本。两行代码(如果我们计算定义则为三行)。在检查我们是否应该再次运行该函数之前打印出新值。当您只需要从5计数到1时没有多大区别,但是如果我们有一些逻辑与值相关并且值的数量远远超过5,则可以节省一些时间

def print_down_rec(n): 
    print n 
    print_down_rec(n-1) if n>1 else print "End"