**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++ program to Print Number` `// series without using loop` `#include <iostream>` ` ` `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.