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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用递归打印从0开始到给定输入的数字(详细信息在帖子中)?相关的知识,希望对你有一定的参考价值。

更多细节:我被给予一个最大数字,并且必须从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到数字。有人可以帮我扭转订单吗?我不知道该怎么做。

答案

在打印之前调用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)

以上是关于如何使用递归打印从0开始到给定输入的数字(详细信息在帖子中)?的主要内容,如果未能解决你的问题,请参考以下文章

树递归 - 打印给定数字的子序列

C语言习题如何在 C 中不使用任何分号打印从 1 到 N 的数字?

打印可以等于给定数字的所有 3 个连续数字

剑指offer:打印从1到最大的n位数

数字三角形,从递归到动态规划

剑指offer[面试题17:打印从1到最大的n位数]