Dado un número N, necesitamos imprimir números del 1 al N sin recursión directa, bucles, etiquetas. Básicamente, necesitamos insertar el fragmento de código anterior para que pueda imprimir números del 1 al N.
C
#include <stdio.h> #define N 20; int main() { // Your code goes Here. }
Ejemplos:
Input : 10 Output : 1 2 3 4 5 6 7 8 9 10 Input : 5 Output : 1 2 3 4 5
Ya hemos discutido las soluciones en las publicaciones a continuación:
Imprimir 1 a 100 en C++, sin bucle y recursividad
¿Cómo imprimirá números del 1 al 100 sin usar bucle?
Aquí está el código que puede imprimir los números del 1 al 100 sin recursión directa, bucles y etiquetas. El código usa recursividad indirecta .
C++
// C++ program to print from 1 to N using // indirect recursion/ #include<bits/stdc++.h> using namespace std; // We can avoid use of these using references int N = 20; int n = 1; void fun1(); void fun2(); // Prints n, increments n and calls fun1() void fun1() { if (n <= N) { cout << n << " "; n++; fun2(); } else return; } // Prints n, increments n and calls fun2() void fun2() { if (n <= N) { cout << n << " "; n++; fun1(); } else return; } // Driver Program int main() { fun1(); return 0; } // This code is contributed by pankajsharmagfg.
C
// C program to print from 1 to N using // indirect recursion/ #include<stdio.h> // We can avoid use of these using references #define N 20; int n = 1; // Prints n, increments n and calls fun1() void fun1() { if (n <= N) { printf("%d", n); n++; fun2(); } else return; } // Prints n, increments n and calls fun2() void fun2() { if (n <= N) { printf("%d", n); n++; fun1(); } else return; } // Driver Program int main(void) { fun1(); return 0; }
Java
// Java program to print from 1 to N using // indirect recursion class GFG { // We can avoid use of these using references static final int N = 20; static int n = 1; // Prints n, increments n and calls fun1() static void fun1() { if (n <= N) { System.out.printf("%d ", n); n++; fun2(); } else { return; } } // Prints n, increments n and calls fun2() static void fun2() { if (n <= N) { System.out.printf("%d ", n); n++; fun1(); } else { return; } } // Driver Program public static void main(String[] args) { fun1(); } } // This code is contributed by Rajput-Ji
Python3
# Python program to print from 1 to N using # indirect recursion # We can avoid use of these using references N = 20; n = 1; # Prints n, increments n and calls fun1() def fun1(): global N, n; if (n <= N): print(n, end = " "); n += 1; fun2(); else: return; # Prints n, increments n and calls fun2() def fun2(): global N, n; if (n <= N): print(n, end = " "); n += 1; fun1(); else: return; # Driver Program if __name__ == '__main__': fun1(); # This code is contributed by 29AjayKumar
C#
// C# program to print from 1 to N using // indirect recursion using System; class GFG { // We can avoid use of these using references static readonly int N = 20; static int n = 1; // Prints n, increments n and calls fun1() static void fun1() { if (n <= N) { Console.Write("{0} ", n); n++; fun2(); } else { return; } } // Prints n, increments n and calls fun2() static void fun2() { if (n <= N) { Console.Write("{0} ", n); n++; fun1(); } else { return; } } // Driver Code public static void Main(String[] args) { fun1(); } } // This code is contributed by Rajput-Ji
PHP
<?php // PHP program to print // from 1 to N using // indirect recursion // We can avoid use of // these using references $N = 20; $n = 1; // Prints n, increments // n and calls fun1() function fun1() { global $N; global $n; if ($n <= $N) { echo $n, " "; $n++; fun2(); } else return; } // Prints n, increments // n and calls fun2() function fun2() { global $N; global $n; if ($n <= $N) { echo $n, " "; $n++; fun1(); } else return; } // Driver Code fun1(); // This code is contributed // by m_kit ?>
Javascript
<script> // Javascript program to print from 1 to N using // indirect recursion // We can avoid use of these using references let N = 20; let n = 1 // Prints n, increments n and calls fun1() function fun1() { if (n <= N) { document.write( n+" "); n++; fun2(); } else { return; } } // Prints n, increments n and calls fun2() function fun2() { if (n <= N) { document.write(n+" "); n++; fun1(); } else { return; } } // Driver code fun1(); // This code is contributed by rag2127 </script>
Producción :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
¿Cómo funciona esto?:
En el programa anterior, solo usamos dos funciones. Uno llama a los demás y otro llama al anterior, por lo tanto recursividad indirecta.
Ejercicio:
modifique el programa anterior para usar N como parámetro en lugar de hacerlo global.
Este artículo es una contribución de Umamaheswararao Tumma de la facultad de ingeniería Jntuh de Hyderabad . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
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