我如何创建一个函数来打印数字及其下面的所有数字,直到1递归?
例如:
print_down_rec(5)
将返回
5
4
3
2
1
答案 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"