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 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 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 int main() { int N = 20, K = 6; PrintNumber(N, N, K, true ); return 0; } |
Java
// 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 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 loop def 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 = 20 K = 6 PrintNumber(N, N, K, True ) # This code is contributed by Mohit Gupta_OMG |
C#
// C# program to Print Number // series without using loop using 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 recursion function 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 recursion function 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 Code let N = 20, K = 6; PrintNumber(N, N, K, true ); // This code is contributed by _saurabh_jaiswal </script> |
Output :
20 14 8 2 -4 2 8 14 20