本文概述
如果我们仔细看一下这个问题, 我们可以看到”循环”的想法是跟踪一些计数器值, 例如” i = 0″到” i <= 100″。因此, 如果不允许使用循环, 那么如何用C语言跟踪其他内容呢!
嗯, 一种可能性是使用”递归”, 前提是我们仔细使用终止条件。这是使用递归打印数字的解决方案。
C++
//C++ program to How will you print
// numbers from 1 to 100 without using loop?
#include <iostream>
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 <stdio.h>
//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
<?php
//PHP program print numbers
//from 1 to 100 without
//using loop
//Prints numbers from 1 to n
function printNos( $n )
{
if ( $n> 0)
{
printNos( $n - 1);
echo $n , " " ;
}
return ;
}
//Driver code
printNos(100);
//This code is contributed by 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)
现在尝试编写一个执行相同操作但没有任何” if”构造的程序。
提示—使用一些可以代替” if”的运算符。
请注意, 递归技术很好, 但是每次调用该函数都会在程序堆栈中创建一个”堆栈帧”。因此, 如果内存有限, 我们需要打印大量数字, 那么”递归”可能不是一个好主意。那么另一种选择是什么呢?
另一种选择是”goto”语句。尽管建议不要将” goto”用作一般编程实践, 因为” goto”语句会更改正常的程序执行顺序, 但在某些情况下, 使用” goto”是最佳的解决方案。
因此, 请尝试使用” goto”语句打印从1到100的数字。你可以使用GfG IDE!
在C++中打印1到100, 没有循环和递归
来源:
https://www.srcmini02.com/68887.html