Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Recursive function with two inputs

Write a recursive function called print_num_pattern() to output the following number pattern.

Given a positive integer as input (Ex: 12), subtract another positive integer (Ex: 3) continually until 0 or a negative value is reached, and then continually add the second integer until the first integer is again reached.

Ex. If the input is:

12 3

the output is:

12 9 6 3 0 3 6 9 12

Here's what I tried:

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)
like image 202
John Avatar asked Apr 17 '26 13:04

John


1 Answers

The most obvious error is that you're calling print_num_pattern(num1 - num2) with only one out of two parameters

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 = ' ')

It works fine after that

>>> print_num_pattern(12, 3)
12 9 6 3 0 3 6 9 12 
like image 97
notacorn Avatar answered Apr 20 '26 03:04

notacorn



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!