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

• Difficulty Level : Easy
• Last Updated : 14 Jun, 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 loops, how can we track something in the 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 a loop?``#include ``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 ` `// 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)

Method 3: Using a MACRO

## C++

 `#include ``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;``}`

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 `

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

My Personal Notes arrow_drop_up