Problema: dados dos números N y K, nuestra tarea es restar un número K de N hasta que el número (N) sea mayor que cero, una vez que N se vuelve negativo o cero, comenzamos a agregar K hasta que ese número se convierte en el número original (N ). Nota: No se permite usar ningún bucle.
Ejemplos:
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
Explicación: podemos hacerlo usando la idea de la recursión es que llamamos a la función una y otra vez hasta que N sea mayor que cero (en cada llamada de función restamos N por K). Una vez que el número se vuelve negativo o cero, comenzamos a agregar K en cada llamada de función hasta que el número se convierte en el número original. Aquí usamos una sola función tanto para la suma como para la resta, pero para cambiar entre la función de suma o resta usamos una bandera booleana .
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
20 14 8 2 -4 2 8 14 20
Consulte el artículo completo sobre la serie Print Number sin usar ningún bucle para obtener más detalles.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA