Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

โปรแกรม 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