如何使用递归打印从0开始到给定输入的数字(详细信息在帖子中)?

问题描述 投票:0回答:1

更多细节:我被给予一个最大数字,并且必须从0打印到该数字,每个数字之间还有一些其他信息。

我的意思是这样的函数:

>>>print_num(2,4)

这将打印以下输出:

0    
4    
1    
4   
2

基本上给定第一个输入,打印0然后输入第二个输入,直到达到最大值。我必须在python中进行递归。

是)我有的:

def print_num(num, info):
    if num == 0:
        print(num)
    else:
        print(num)
        print(info)
        print_num(num-1,info)

输出:

2
4
1
4
0

问题是这个打印从数字到0,而不是从0到数字。有人可以帮我扭转订单吗?我不知道该怎么做。

python recursion
1个回答
1
投票

在打印之前调用print_num,以反转打印顺序

def print_num(num, info):
    if num == 0:
        print(num)
    else:
        print_num(num-1,info)
        print(info)
        print(num)


print_num(2, 4)

输出:

0
4
1
4
2

你可以简化它:

def print_num(num, info):
    if num > 0:
        print_num(num-1,info)
        print(info)
    print(num)
© www.soinside.com 2019 - 2024. All rights reserved.