如果我们仔细研究这个问题,我们可以看到“循环”的概念是跟踪一些计数器值,例如“i=0”直到“i<=100”。所以,如果我们不允许使用循环,怎么能用C语言跟踪某些东西呢! 一种可能性是使用“递归”,前提是我们仔细使用终止条件。下面是一个使用递归打印数字的解决方案。
null
方法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 |
蟒蛇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 |
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 ?> |
Javascript
<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 3940 41 42 43 44 45 46 47 48 49 50 5152 53 54 55 56 57 58 59 60 61 62 6364 65 66 67 68 69 70 71 72 73 74 7576 77 78 79 80 81 82 83 84 85 86 8788 89 90 91 92 93 94 95 96 97 98 99 100
时间复杂性: O(n)
辅助空间: O(n)
方法2:
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); } } } |
蟒蛇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 |
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 |
输出
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) 现在,试着编写一个程序,它可以执行相同的操作,但没有任何“if”构造。 提示-使用一些可以用来代替“if”的运算符。 请注意,递归技术很好,但每次调用函数都会在程序堆栈中创建一个“堆栈帧”。因此,如果有限的内存受到限制,我们需要打印大量的数字,“递归”可能不是一个好主意。那么,另一种选择是什么呢? 另一种选择是“goto”语句。虽然使用“goto”作为一般编程实践是不可取的,因为“goto”语句改变了正常的程序执行顺序,但在某些情况下,使用“goto”是最好的解决方案。 所以,请尝试用“goto”语句打印从1到100的数字。你可以用 GfG IDE! 在C++中打印1到100,没有循环和递归
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END