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

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.

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

/div>

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

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)

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

## tags:

C C++ Recursion cpp-puzzle Recursion C CPP