# How will you print numbers from 1 to 100 without using loop?

• Difficulty Level : Easy
• Last Updated : 12 Jan, 2022

If we take a look at this problem carefully, we can see that the idea of “loop” is to track some counter value e.g. “i=0” till “i <= 100”. So if we aren’t allowed to use loop, how else can be track something in C language!
Well, one possibility is the use of ‘recursion’ provided we use the terminating condition carefully. Here is a solution that prints numbers using recursion.

Method-1:

## C++

 `// C++ program to How will you print``//  numbers from 1 to 100 without using loop?``#include ``using` `namespace` `std;` `class` `gfg``{``    ` `// 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 ` `// 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

 ` 0)``    ``{``        ``printNos(``\$n` `- 1);``        ``echo` `\$n``, ``" "``;``    ``}``    ``return``;``}` `// Driver code``printNos(100);` `// This code is contributed by vt_m``?>`

## Javascript

 ``

Output :

```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 ```

Time Complexity: O(n)

Auxiliary Space: O(n)

Method 2:

## C++

 `// C++ program``#include ``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`
Output
`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 `

Time Complexity : O(n)

Auxiliary Space: O(n)
Now try writing a program that does the same but without any “if” construct.
Hint — use some operator which can be used instead of “if”.
Please note that recursion technique is good but every call to the function creates one “stack-frame” in program stack. So if there’s constraint to the limited memory and we need to print large set of numbers, “recursion” might not be a good idea. So what could be the other alternative?
Another alternative is “goto” statement. Though use of “goto” is not suggestible as a general programming practice as “goto” statement changes the normal program execution sequence yet in some cases, use of “goto” is the best working solution.
So please give a try printing numbers from 1 to 100 with “goto” statement. You can use GfG IDE!
Print 1 to 100 in C++, without loop and recursion

My Personal Notes arrow_drop_up