How to print number series without using any loop in Java

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

 

Submit Your Programming Assignment Details