如何使用简单递归来打印数字

时间:2018-08-02 18:09:12

标签: python python-3.x recursion printing

我对Python很陌生,正在学习递归作业。我面临的问题是如何使用递归打印数字。

例如,函数printNumbers(12345)的输出结果应为:

1
2
3
4
5

我将如何使用递归来做到这一点?我的基本情况是什么?

任何反馈将不胜感激!

3 个答案:

答案 0 :(得分:1)

如果要打印此输出,则需要使用for循环范围控件(在此开始和结束)进行此操作。这是一个在线python解释器来阅读此内容。 http://mathcs.holycross.edu/~kwalsh/python/

for x in range(1, 6):
    print(x)

答案 1 :(得分:0)

很抱歉造成混乱-我想我已经解决了。为了进行赋值,我必须使用递归,否则,我会使用范围。

def printNums(numbers):
    numbers = str(numbers)
    if len(numbers) <= 1:
        print(numbers)
    else:
        print(numbers[0])
        printNums(numbers[1:])

printNums(12345)

感谢您的反馈!非常感谢。

答案 2 :(得分:0)

一种递归方式:

def printNumbers(n):
    if n:
        temp = n % 10
        printNumbers(n // 10)
        print(temp)

printNumbers(12345)

输出

1
2
3
4
5

说明

基本情况为n == 0。对于其他任何事情,请使用模数运算符获取最右边的数字,并将其存储在临时变量中,以供以后打印。然后使用n // 10作为自变量进行递归,以除去最右边的数字。当基本案例返回其调用范围时,一切都将在返回到调用范围的过程中以相反的方式打印。

temp = 5
    temp = 4
        temp = 3
            temp = 2
                temp = 1
                    base case, do nothing
                print 1
            print 2
        print 3
    print 4
print 5

这里是repl