Рубрики

Как вы будете печатать числа от 1 до 100 без использования петли?

Если мы внимательно посмотрим на эту проблему, то увидим, что идея «цикла» состоит в том, чтобы отслеживать некоторое значение счетчика, например, «i = 0», до «i <= 100». Так что, если нам не разрешено использовать цикл Как еще можно отследить что-то на языке Си!

Что ж, одной из возможностей является использование «рекурсии», при условии, что мы тщательно используем условие завершения. Вот решение, которое печатает числа, используя рекурсию.

C ++

// C ++ программа для печати
// числа от 1 до 100 без использования цикла?
#include <iostream>

using namespace std;

  

class gfg

{

      
// Печатает числа от 1 до n

public:

void printNos(unsigned int n)

{

    if(n > 0)

    {

        printNos(n - 1);

        cout << n << " ";

    }

    return;

}
};

  
// Код драйвера

int main()

{

    gfg g;

    g.printNos(100);

    return 0;

}

  

  
// Этот код предоставлен SoM15242

С

#include <stdio.h>

  
// Печатает числа от 1 до n

void printNos(unsigned int n)

{

    if(n > 0)

    {

        printNos(n - 1);

        printf("%d ", n);

    }

    return;

}

  
// Код драйвера

int main()

{

    printNos(100);

    getchar();

    return 0;

}

Джава

import java.io.*;

import java.util.*;

import java.text.*;

import java.math.*;

import java.util.regex.*;

  

class GFG 

{

    // Печатает числа от 1 до n

    static void printNos(int n)

    {

        if(n > 0)

        {

            printNos(n - 1);

            System.out.print(n + " ");

        }

        return;

    }

  

    // Код драйвера

    public static void main(String[] args) 

    {

        printNos(100);

    }

}

  
// Этот код предоставлен Manish_100

python3

# Python3 программа для печати
# числа от 1 до n

  

def printNos(n):

    if n > 0:

        printNos(n - 1)

        print(n, end = ' ')

  
# Код драйвера

printNos(100)

  
# Этот код предоставлен Смитой Динеш Семвал

C #

// C # код для печати номеров из
// от 1 до 100 без использования цикла

using System;

  

class GFG 

{

      

    // Печатает числа от 1 до n

    static void printNos(int n)

    {

        if(n > 0)

        {

            printNos(n - 1);

            Console.Write(n + " ");

        }

        return;

    }

  
// Код драйвера

public static void Main()

{

        printNos(100);

}
}

  
// Этот код предоставлен Ajit

PHP

<?php
// PHP программа печатает номера
// от 1 до 100 без
// используя цикл

  
// Печатает числа от 1 до n

function printNos($n)

{

    if($n > 0)

    {

        printNos($n - 1);

        echo $n, " ";

    }

    return;

}

  
// Код драйвера
printNos(100);

  
// Этот код предоставлен vt_m
?>


Выход :

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 

Сложность времени: O (n)

Теперь попробуйте написать программу, которая делает то же самое, но без какой-либо конструкции «если».
Подсказка — используйте оператор, который можно использовать вместо «если».

Обратите внимание, что метод рекурсии хорош, но каждый вызов функции создает один «стек-фрейм» в программном стеке. Так что, если есть ограничение на ограниченную память и нам нужно напечатать большой набор чисел, «рекурсия» может быть не очень хорошей идеей. Так что может быть другой альтернативой?

Другой альтернативой является заявление «goto». Хотя использование «goto» не рекомендуется в качестве общей практики программирования, так как оператор «goto» изменяет обычную последовательность выполнения программы, однако в некоторых случаях использование «goto» является лучшим рабочим решением.

Поэтому, пожалуйста, попробуйте напечатать цифры от 1 до 100 с заявлением «Перейти». Вы можете использовать GfG IDE!

Печать от 1 до 100 на C ++, без цикла и рекурсии

Рекомендуемые посты:

Как вы будете печатать числа от 1 до 100 без использования петли?

0.00 (0%) 0 votes