無需迴圈列印數字序列的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 : 
";    PrintSeriesRec(N, N, K, true);    return 0; }

輸出

序列是:

12 8 4 0 4 8 12

更新於:2020年7月18日

497 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.