Print Number series without using any loop

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 <iostream>using namespace std;// function print series// using recursionvoid 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 than zero if (flag == true) { PrintNumber(N - K, Original, K, flag); return; } // second case (Addition ) if (!flag) { PrintNumber(N + K, Original, K, flag); return; }}// driver programint main(){ int N = 20, K = 6; PrintNumber(N, N, K, true); return 0;} |
Java
// Java program to Print Number// series without using loopimport 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 than 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 loopdef 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 than 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 = 20K = 6PrintNumber(N, N, K, True)# This code is contributed by Mohit Gupta_OMG |
C#
// C# program to Print Number// series without using loopusing 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 than 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
<?php// PHP program to Print Number// series without using loop// function print series// using recursionfunction PrintNumber($N, $Original, $K, $flag){ // print the number echo($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 than zero if ($flag == true) { PrintNumber($N - $K, $Original, $K, $flag); return; } // second case (Addition ) if (!$flag) { PrintNumber($N + $K, $Original, $K, $flag); return; }}// Driver Code$N = 20; $K = 6;PrintNumber($N, $N, $K, true);// This code is contributed by Ajit.?> |
Javascript
<script>// Javascript program to Print Number// series without using loop// function print series// using recursionfunction PrintNumber(N, Original, K, flag){ // print the number document.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 than zero if (flag == true) { PrintNumber(N - K, Original, K, flag); return; } // second case (Addition ) if (!flag) { PrintNumber(N + K, Original, K, flag); return; }}// Driver Codelet N = 20, K = 6;PrintNumber(N, N, K, true);// This code is contributed by _saurabh_jaiswal</script> |
20 14 8 2 -4 2 8 14 20
Time complexity: O(N/K)
Auxiliary space: O(N/K)
The extra space is used in recursion call stack.
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 zambiatek!



