Related Articles

# Print Number series without using any loop

• Difficulty Level : Basic
• Last Updated : 23 Apr, 2021

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.

## C++

 `// C++ program to Print Number``// series without using loop``#include ` `using` `namespace` `std;` `// function print series``// using recursion``void` `PrintNumber(``int` `N, ``int` `Original, ``int` `K, ``bool` `flag)``{` `    ``// print the number``    ``cout << N << ``" "``;` `    ``// change flag if number``    ``// become negative``    ``if` `(N <= 0)``        ``flag = !flag;` `    ``// base condition for``    ``// second_case (Adding K)``    ``if` `(N == Original && !flag)` `        ``return``;` `    ``// if flag is true``    ``// we subtract value until``    ``// number is greater then zero``    ``if` `(flag == ``true``) {` `        ``PrintNumber(N - K, Original, K, flag);` `        ``return``;``    ``}` `    ``// second case (Addition )``    ``if` `(!flag) {` `        ``PrintNumber(N + K, Original, K, flag);` `        ``return``;``    ``}``}` `// driver program``int` `main()``{` `    ``int` `N = 20, K = 6;` `    ``PrintNumber(N, N, K, ``true``);` `    ``return` `0;``}`

## Java

 `// Java program to Print Number``// series without using loop` `import` `java.io.*;``import` `java.util.*;` `class` `GFG``{``    ``public` `static` `void` `PrintNumber(``int` `N, ``int` `Original, ``int` `K, ``boolean` `flag)``    ``{` `        ``// print the number``        ``System.out.print(N + ``" "``);` `        ``// change flag if number``        ``// become negative``        ``if` `(N <= ``0``)``            ``flag = !flag;` `        ``// base condition for``        ``// second_case (Adding K)``        ``if` `(N == Original && !flag)` `            ``return``;` `        ``// if flag is true``        ``// we subtract value until``        ``// number is greater then zero``        ``if` `(flag == ``true``)``        ``{``            ``PrintNumber(N - K, Original, K, flag);``            ``return``;``        ``}` `        ``// second case (Addition )``        ``if` `(!flag)``        ``{``            ``PrintNumber(N + K, Original, K, flag);``            ``return``;``        ``}``    ``}` `    ``public` `static` `void` `main (String[] args)``    ``{``        ``int` `N = ``20``, K = ``6``;``        ``PrintNumber(N, N, K, ``true``);``    ``}``}``// This code is contributed by Mohit Gupta_OMG`

## 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 then 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`

## C#

 `// C# program to Print Number``// series without using loop``using` `System;` `public` `class` `GFG {``        ` `    ``// function print series``    ``// using recursion``    ``static` `void` `PrintNumber(``int` `N,``             ``int` `Original, ``int` `K, ``bool` `flag)``    ``{``    ` `        ``// print the number``        ``Console.Write(N + ``" "``);``    ` `        ``// change flag if number``        ``// become negative``        ``if` `(N <= 0)``            ``flag = !flag;``    ` `        ``// base condition for``        ``// second_case (Adding K)``        ``if` `(N == Original && !flag)``            ``return``;``    ` `        ``// if flag is true``        ``// we subtract value until``        ``// number is greater then zero``        ``if` `(flag == ``true``)``        ``{``            ``PrintNumber(N - K, Original, K,``                                      ``flag);``            ``return``;``        ``}``    ` `        ``// second case (Addition )``        ``if` `(!flag)``        ``{``            ``PrintNumber(N + K, Original, K,``                                      ``flag);``            ``return``;``        ``}``    ``}``    ` `    ``// driver program``    ``static` `public` `void` `Main ()``    ``{``        ``int` `N = 20, K = 6;` `        ``PrintNumber(N, N, K, ``true``);``    ``}``}` `// This code is contributed by vt_m.`

## PHP

 ``

## Javascript

 ``

Output :

`20 14 8 2 -4 2 8 14 20 `

Attention reader! Don’t stop learning now. Get hold of all the important mathematical concepts for competitive programming with the Essential Maths for CP Course at a student-friendly price. To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

My Personal Notes arrow_drop_up