¿Cómo imprimirá números del 1 al 100 sin usar un bucle?

Si observamos este problema detenidamente, podemos ver que la idea de «bucle» es rastrear algún valor de contador, por ejemplo, «i = 0» hasta «i <= 100». Entonces, si no se nos permite usar bucles, ¿cómo podemos rastrear algo en el lenguaje C?
Bueno, una posibilidad es el uso de ‘recursividad’, siempre que usemos la condición de terminación con cuidado. Aquí hay una solución que imprime números usando recursividad. 
 

Método 1:

C++

// C++ program to How will you print
//  numbers from 1 to 100 without using a loop?
#include <iostream>
using namespace std;
 
class gfg
{
     
// It prints numbers from 1 to n.
public:
void printNos(unsigned int n)
{
    if(n > 0)
    {
        printNos(n - 1);
        cout << n << " ";
    }
    return;
}
};
 
// Driver code
int main()
{
    gfg g;
    g.printNos(100);
    return 0;
}
 
 
// This code is contributed by SoM15242

C

#include <stdio.h>
 
// Prints numbers from 1 to n
void printNos(unsigned int n)
{
    if(n > 0)
    {
        printNos(n - 1);
        printf("%d ", n);
    }
    return;
}
 
// Driver code
int main()
{
    printNos(100);
    getchar();
    return 0;
}

Java

import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;
 
class GFG
{
    // Prints numbers from 1 to n
    static void printNos(int n)
    {
        if(n > 0)
        {
            printNos(n - 1);
            System.out.print(n + " ");
        }
        return;
    }
 
    // Driver Code
    public static void main(String[] args)
    {
        printNos(100);
    }
}
 
// This code is contributed by Manish_100

Python3

# Python3 program to Print
# numbers from 1 to n
 
def printNos(n):
    if n > 0:
        printNos(n - 1)
        print(n, end = ' ')
 
# Driver code
printNos(100)
 
# This code is contributed by Smitha Dinesh Semwal

C#

// C# code for print numbers from
// 1 to 100 without using loop
using System;
 
class GFG
{
     
    // Prints numbers from 1 to n
    static void printNos(int n)
    {
        if(n > 0)
        {
            printNos(n - 1);
            Console.Write(n + " ");
        }
        return;
    }
 
// Driver Code
public static void Main()
{
        printNos(100);
}
}
 
// This code is contributed by Ajit

PHP

<?php
// PHP program print numbers
// from 1 to 100 without
// using loop   
 
// Prints numbers from 1 to n
function printNos($n)
{
    if($n > 0)
    {
        printNos($n - 1);
        echo $n, " ";
    }
    return;
}
 
// Driver code
printNos(100);
 
// This code is contributed by vt_m
?>

Javascript

<script>
    // Javascript code for print numbers from
    // 1 to 100 without using loop
     
    // Prints numbers from 1 to n
    function printNos(n)
    {
        if(n > 0)
        {
            printNos(n - 1);
            document.write(n + " ");
        }
        return;
    }
     
    printNos(100);
 
// This code is contributed by rameshtravel07.
</script>
Producción

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 

Complejidad de tiempo: O(n)

Espacio Auxiliar: O(n)

Método 2:

C++

// C++ program
#include <bits/stdc++.h>
using namespace std;
 
void printNos(int initial, int last)
{
    if (initial <= last) {
        cout << initial << " ";
        printNos(initial + 1, last);
    }
}
 
int main()
{
    printNos(1, 100);
    return 0;
}
 
// This code is contributed by ukasp.

Java

/*package whatever //do not write package name here */
 
import java.io.*;
 
class GFG {
    public static void main(String[] args)
    {
        printNos(1, 100);
    }
    public static void printNos(int initial, int last)
    {
        if (initial <= last) {
            System.out.print(initial + " ");
            printNos(initial + 1, last);
        }
    }
}

Python3

def printNos(initial, last):
    if(initial<=last):
        print(initial)
        printNos(initial+1,last)
printNos(1,10)

C#

/*package whatever //do not write package name here */
 
 
 
using System;
public class GFG {
    public static void Main(String[] args)
    {
        printNos(1, 100);
    }
    public static void printNos(int initial, int last)
    {
        if (initial <= last) {
            Console.Write(initial + " ");
            printNos(initial + 1, last);
        }
    }
}
 
// This code contributed by gauravrajput1

Javascript

/*package whatever //do not write package name here */
 
    printNos(1, 100);
     
    function printNos(initial, last)
    {
        if (initial <= last) {
            document.write(initial + " ");
            printNos(initial + 1, last);
        }
    }
 
// This code is contributed by shivanisinghss2110
Producción

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 

Complejidad de tiempo : O(n)

Espacio Auxiliar: O(n)

Método 3: Usar una MACRO

C++

#include <iostream>
using namespace std;
  
#define COUT(i) cout << i++ << " ";
#define LEVEL(N) N N N N N N N N N N
#define PRINT(i) LEVEL(LEVEL(COUT(i)));        // 100 = 10×10
  
int main()
{
    int i = 1;
    // prints numbers from 1 to 100
    PRINT(i);
 
    return 0;
}
Producción

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 

Ahora intente escribir un programa que haga lo mismo pero sin ninguna condición «si». 
Sugerencia: use algún operador que se pueda usar en lugar de «si». 
Tenga en cuenta que la técnica de recursión es buena, pero cada llamada a la función crea un «marco de pila» en la pila del programa. Entonces, si hay una restricción a la memoria limitada y necesitamos imprimir un gran conjunto de números, la «recursión» podría no ser una buena idea. Entonces, ¿cuál podría ser la otra alternativa?
Otra alternativa es la instrucción «goto». Aunque no se sugiere el uso de «goto» como práctica de programación general, ya que la instrucción «goto» cambia la secuencia normal de ejecución del programa, en algunos casos, el uso de «goto» es la mejor solución de trabajo. 
Por lo tanto, intente imprimir números del 1 al 100 con la declaración «goto». Puedes usar elIDE GFG! 

Imprime del 1 al 100 en C++, sin bucle ni recursividad
 

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *