不使用循环,如何打印 1 到 100 的数字?
原文:https://www . geeksforgeeks . org/不使用循环将如何打印从 1 到 200 的数字/
如果我们仔细看看这个问题,我们可以看到“循环”的想法是跟踪一些计数器值,例如“i=0”直到“i <= 100”. So if we aren’t allowed to use loop, how else can be track something in C language! 好吧,一种可能性是使用‘递归’,前提是我们仔细使用终止条件。这里有一个使用递归打印数字的解决方案。
法-1:
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
Python 3
# 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
服务器端编程语言(Professional Hypertext Preprocessor 的缩写)
<?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
?>
java 描述语言
<script>
// Javascript code for print numbers from
// 1 to 100 without using loop
// Prints numbers from 1 to n
function printNos(n)
{
if(n > 0)
{
printNos(n - 1);
document.write(n + " ");
}
return;
}
printNos(100);
// This code is contributed by rameshtravel07.
</script>
输出:
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)
辅助空间: O(1)
方法二:
C++
// C++ program
#include <bits/stdc++.h>
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);
}
}
}
Python 3
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
java 描述语言
/*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
时间复杂度: O(n)
辅助空间: O(n) 现在试着写一个程序,做同样的事情,但是没有任何“如果”的构造。 提示—使用一些可以用来代替“如果”的运算符。 请注意,递归技术很好,但是每次调用函数都会在程序堆栈中创建一个“堆栈帧”。因此,如果有限的内存有限制,我们需要打印大量的数字,“递归”可能不是一个好主意。那么,还有什么其他选择呢? 另一种选择是“goto”语句。虽然“goto”的使用不像一般的编程实践那样受影响,因为“goto”语句改变了正常的程序执行顺序,但是在某些情况下,使用“goto”是最好的解决方案。 所以请试着用“goto”语句打印 1 到 100 的数字。可以使用 GfG IDE! 用 C++打印 1 到 100,没有循环和递归
版权属于:月萌API www.moonapi.com,转载请注明出处