具有两个输入的递归函数

Joh*_*ohn 3 python recursion

编写一个名为 print_num_pattern() 的递归函数来输出以下数字模式。

给定一个正整数作为输入(例如:12),连续减去另一个正整数(例如:3),直到达到 0 或负值,然后连续添加第二个整数,直到再次达到第一个整数。

前任。如果输入是:

12 3

输出是:

12 9 6 3 0 3 6 9 12

这是我尝试过的:

num1 = 12

num2 = 3


def print_num_pattern(num1,num2): 

    if (num1 == 0 or num1 < 0): 
        print(num1, end = ' ') 
        return

    print(num1, end = ' ') 
    print_num_pattern(num1 - num2) 

    print(num1, end = ' ') 

print_num_pattern(num1,num2)
Run Code Online (Sandbox Code Playgroud)

ark*_*k0n 6

最明显的错误是您print_num_pattern(num1 - num2)仅使用两个参数之一进行调用

def print_num_pattern(num1,num2): 

    if (num1 == 0 or num1 < 0): 
        print(num1, end = ' ') 
        return

    print(num1, end = ' ') 
    print_num_pattern(num1 - num2, num2) 

    print(num1, end = ' ')
Run Code Online (Sandbox Code Playgroud)

之后就可以正常工作了

>>> print_num_pattern(12, 3)
12 9 6 3 0 3 6 9 12 
Run Code Online (Sandbox Code Playgroud)