Open In App

Python Program for Print Number series without using any loop

Last Updated : 23 Apr, 2023
Comments
Improve
Suggest changes
Like Article
Like
Report

Problem - Givens Two number N and K, our task is to subtract a number K from N until number(N) is greater than zero, once the N becomes negative or zero then we start adding K until that number become the original number(N). Note : Not allow to use any loop. Examples :

Input : N = 15 K = 5  
Output : 15 10 5 0 1 5 10 15

Input : N = 20 K = 6
Output : 20 14 8 2 -4 2 8 14 20 

Explanation - We can do it using recursion idea is that we call the function again and again until N is greater than zero (in every function call we subtract N by K). Once the number becomes negative or zero we start adding K in every function call until the number becomes the original number. Here we use a single function for both addition and subtraction but to switch between addition or subtraction function we used a Boolean flag. 

Python3
# Python program to Print Number
# series without using loop

def PrintNumber(N, Original, K, flag):
    #print the number
    print(N, end = " ")
    
    # change flag if number
    # become negative
    
    if (N <= 0):
        if(flag==0):
            flag = 1
        else:
            flag = 0
        
    # base condition for
    # second_case (Adding K)
    
    if (N == Original and (not(flag))):
        return
    
    # if flag is true
    # we subtract value until
    # number is greater than zero
    
    if (flag == True):
        PrintNumber(N - K, Original, K, flag)
        return
    
    # second case (Addition )
    if (not(flag)):
        PrintNumber(N + K, Original, K, flag);
        return
    
N = 20
K = 6
PrintNumber(N, N, K, True)

# This code is contributed by Mohit Gupta_OMG

Output :

20 14 8 2 -4 2 8 14 20 

The time complexity is O(N/K), where N is the input number and K is the step value.

The auxiliary space is O(N/K)

Approach Name: Recursive Mathematical Approach using Function Calls.

Steps:

  1. Define a function print_series(N, K) that takes two parameters, N and K.
  2. Check if N is less than or equal to zero, if yes, print N and return.
  3. Print N and call the print_series(N-K, K) function recursively.
  4. Print N again.
Python3
def print_series(N, K):
    if N <= 0:
        print(N, end=" ")
        return
    print(N, end=" ")
    print_series(N-K, K)
    print(N, end=" ")

N = 20
K = 6
print_series(N, K)

Output
20 14 8 2 -4 2 8 14 20 

 It has a time complexity of O(log(N/K)) and an auxiliary space of O(log(N/K)).

Please refer complete article on Print Number series without using any loop for more details!


Article Tags :

Similar Reads

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy