如果我们仔细地看一下这个问题,我们可以看到“循环”的想法是跟踪一些计数器值,例如“ i = 0”直到“ i <= 100”。因此,如果不允许使用循环,那么如何用C语言跟踪其他内容呢!
好吧,一种可能性是使用“递归”,前提是我们谨慎地使用终止条件。这是使用递归打印数字的解决方案。
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
输出 :
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)
现在尝试编写一个执行相同操作但没有任何“ if”构造的程序。
提示—使用一些可以代替“ if”的运算符。
请注意,递归技术很好,但是每次调用该函数都会在程序堆栈中创建一个“堆栈帧”。因此,如果内存有限,我们需要打印大量数字,那么“递归”可能不是一个好主意。那么,另一种选择是什么呢?
另一种选择是“ goto”语句。尽管建议不要使用“ goto”作为一般编程实践,因为“ goto”语句会更改正常的程序执行顺序,但在某些情况下,使用“ goto”是最佳的解决方案。
因此,请尝试使用“ goto”语句打印从1到100的数字。您可以使用GfG IDE!
在C++中打印1到100,没有循环和递归
要从最佳影片策划和实践问题去学习,检查了C++基础课程为基础,以先进的C++和C++ STL课程基础加上STL。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程” 。