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 this using the idea of ??recursion, that is, we call the function again and again until N is greater than zero (in each function call, we subtract K from N). Once the number becomes negative or zero, we start adding K to each function call until the number becomes the original number. Here, we use a single function for addition and subtraction, but in order to switch between addition or subtraction functions, we use Boolean flags.
// 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
Output:
20 14 8 2 -4 2 8 14 20