無需迴圈列印數字序列的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
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP