个性化阅读
专注于IT技术分析

如何在不使用循环的情况下打印1到100之间的数字?

本文概述

如果我们仔细看一下这个问题, 我们可以看到”循环”的想法是跟踪一些计数器值, 例如” 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, 没有循环和递归

赞(0) 打赏
未经允许不得转载:srcmini » 如何在不使用循环的情况下打印1到100之间的数字?
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者

微信扫一扫打赏