不使用任何循环打印数字系列

问题—— 给定两个数N和K,我们的任务是从N中减去一个数K,直到数(N)大于零,一旦N变成负数或零,我们就开始加K,直到这个数变成原来的数(N)。 注: 不允许使用任何循环。 例如:

null
Input : N = 15 K = 5  Output : 15 10 5 0 1 5 10 15Input : N = 20 K = 6Output : 20 14 8 2 -4 2 8 14 20 

解释—— 我们可以使用 递归 我们反复调用函数,直到N大于零(在每次函数调用中,我们用K减去N)。一旦这个数字变成负数或零,我们就开始在每个函数调用中添加K,直到这个数字变成原来的数字。在这里,我们对加法和减法都使用一个函数,但为了在加法或减法函数之间切换,我们使用了布尔函数 旗帜 .

C++

// C++ program to Print Number
// series without using loop
#include <iostream>
using namespace std;
// function print series
// using recursion
void PrintNumber( int N, int Original, int K, bool flag)
{
// print the number
cout << N << " " ;
// change flag if number
// become negative
if (N <= 0)
flag = !flag;
// base condition for
// second_case (Adding K)
if (N == Original && !flag)
return ;
// if flag is true
// we subtract value until
// number is greater then zero
if (flag == true ) {
PrintNumber(N - K, Original, K, flag);
return ;
}
// second case (Addition )
if (!flag) {
PrintNumber(N + K, Original, K, flag);
return ;
}
}
// driver program
int main()
{
int N = 20, K = 6;
PrintNumber(N, N, K, true );
return 0;
}


JAVA

// Java program to Print Number
// series without using loop
import java.io.*;
import java.util.*;
class GFG
{
public static void PrintNumber( int N, int Original, int K, boolean flag)
{
// print the number
System.out.print(N + " " );
// change flag if number
// become negative
if (N <= 0 )
flag = !flag;
// base condition for
// second_case (Adding K)
if (N == Original && !flag)
return ;
// if flag is true
// we subtract value until
// number is greater then zero
if (flag == true )
{
PrintNumber(N - K, Original, K, flag);
return ;
}
// second case (Addition )
if (!flag)
{
PrintNumber(N + K, Original, K, flag);
return ;
}
}
public static void main (String[] args)
{
int N = 20 , K = 6 ;
PrintNumber(N, N, K, true );
}
}
// This code is contributed by Mohit Gupta_OMG


Python3

# Python program to Print Number
# series without using loop
def PrintNumber(N, Original, K, flag):
#print the number
print (N, end = " " )
# change flag if number
# become negative
if (N < = 0 ):
if (flag = = 0 ):
flag = 1
else :
flag = 0
# base condition for
# second_case (Adding K)
if (N = = Original and ( not (flag))):
return
# if flag is true
# we subtract value until
# number is greater then zero
if (flag = = True ):
PrintNumber(N - K, Original, K, flag)
return
# second case (Addition )
if ( not (flag)):
PrintNumber(N + K, Original, K, flag);
return
N = 20
K = 6
PrintNumber(N, N, K, True )
# This code is contributed by Mohit Gupta_OMG


C#

// C# program to Print Number
// series without using loop
using System;
public class GFG {
// function print series
// using recursion
static void PrintNumber( int N,
int Original, int K, bool flag)
{
// print the number
Console.Write(N + " " );
// change flag if number
// become negative
if (N <= 0)
flag = !flag;
// base condition for
// second_case (Adding K)
if (N == Original && !flag)
return ;
// if flag is true
// we subtract value until
// number is greater then zero
if (flag == true )
{
PrintNumber(N - K, Original, K,
flag);
return ;
}
// second case (Addition )
if (!flag)
{
PrintNumber(N + K, Original, K,
flag);
return ;
}
}
// driver program
static public void Main ()
{
int N = 20, K = 6;
PrintNumber(N, N, K, true );
}
}
// This code is contributed by vt_m.


PHP

<?php
// PHP program to Print Number
// series without using loop
// function print series
// using recursion
function PrintNumber( $N , $Original ,
$K , $flag )
{
// print the number
echo ( $N . " " );
// change flag if number
// become negative
if ( $N <= 0)
$flag = ! $flag ;
// base condition for
// second_case (Adding K)
if ( $N == $Original && ! $flag )
return ;
// if flag is true
// we subtract value until
// number is greater then zero
if ( $flag == true) {
PrintNumber( $N - $K , $Original ,
$K , $flag );
return ;
}
// second case (Addition )
if (! $flag ) {
PrintNumber( $N + $K , $Original ,
$K , $flag );
return ;
}
}
// Driver Code
$N = 20; $K = 6;
PrintNumber( $N , $N , $K , true);
// This code is contributed by Ajit.
?>


Javascript

<script>
// Javascript program to Print Number
// series without using loop
// function print series
// using recursion
function PrintNumber(N, Original,
K, flag)
{
// print the number
document.write(N + " " );
// change flag if number
// become negative
if (N <= 0)
flag = !flag;
// base condition for
// second_case (Adding K)
if (N == Original && !flag)
return ;
// if flag is true
// we subtract value until
// number is greater then zero
if (flag == true ) {
PrintNumber(N - K, Original,
K, flag);
return ;
}
// second case (Addition )
if (!flag) {
PrintNumber(N + K, Original,
K, flag);
return ;
}
}
// Driver Code
let N = 20, K = 6;
PrintNumber(N, N, K, true );
// This code is contributed by _saurabh_jaiswal
</script>


输出:

20 14 8 2 -4 2 8 14 20 

© 版权声明
THE END
喜欢就支持一下吧
点赞13 分享