📌  相关文章
📜  不使用任何循环的打印数字系列的Java程序

📅  最后修改于: 2022-05-13 01:58:09.408000             🧑  作者: Mango

不使用任何循环的打印数字系列的Java程序

问题 -给定两个数 N 和 K,我们的任务是从 N 中减去一个数 K,直到 number(N) 大于零,一旦 N 变为负数或零,我们开始添加 K,直到该数变为原始数 (N )。
注意:不允许使用任何循环。

例子 :

Input : N = 15 K = 5  
Output : 15 10 5 0 1 5 10 15

Input : N = 20 K = 6
Output : 20 14 8 2 -4 2 8 14 20 

解释 –我们可以使用递归思想来做到这一点,我们一次又一次地调用函数,直到 N 大于零(在每个函数调用中,我们将 N 减去 K)。一旦数字变为负数或零,我们开始在每个函数调用中添加 K,直到数字变为原始数字。在这里,我们对加法和减法都使用一个函数,但是在加法或减法函数之间切换我们使用了一个布尔标志

// 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
输出:
20 14 8 2 -4 2 8 14 20

有关详细信息,请参阅不使用任何循环的打印编号系列的完整文章!