Related Articles
C Program to Print Number series without using any loop
• Last Updated : 05 Dec, 2018

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

## Recommended: Please try your approach on {IDE} first, before moving on to the solution.

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++ 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;``}`
Output:
```20 14 8 2 -4 2 8 14 20
```

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

Want to learn from the best curated videos and practice problems, check out the C Foundation Course for Basic to Advanced C.

My Personal Notes arrow_drop_up