C程序在不使用任何循环的情况下打印数字系列

在此问题中,我们给了两个数字N和K。我们的任务是创建一个无需使用任何循环即可打印数字序列的程序。

要打印的系列将从n开始,并与k相减,直到变为零或负数。之后,我们将开始向其添加k,直到再次变为n。如果执行此过程,则无法使用任何类型的循环。

让我们举个例子来了解这个问题,

输入值

n = 12 , k = 3

输出结果

12 9 6 3 0 3 6 9 12

为了不使用循环来解决此问题,我们将使用递归。我们将创建一个递归函数,该函数将再次调用自身并检查数字的值,以确保对数字进行加法或减法运算中的哪一项将成为数字。

该函数将使用一个标志,该标志将帮助我们跟踪该值是要减去还是相加。

C程序在不使用任何循环的情况下打印数字系列

// C程序在不使用任何循环的情况下打印数字序列

示例

#include <iostream>
using namespace std;
void PrintSeriesRec(int current, int N, int K, bool flag){
   cout<<current<<"\t";
   if (current <= 0)
      flag = !flag;
   if (current == N && !flag)
      return;
   if (flag == true)
      PrintSeriesRec(current - K, N, K, flag);
   else if (!flag)
      PrintSeriesRec(current + K, N, K, flag);
}
int main(){
   int N = 12, K = 4;
   cout<<"The series is : \n";
   PrintSeriesRec(N, N, K, true);
   return 0;
}

输出结果

该系列是-

12 8 4 0 4 8 12