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

โปรแกรม C พิมพ์ชุดตัวเลขโดยไม่ใช้ลูปใดๆ

ในปัญหานี้ เราได้รับสองตัวเลข N และ K งานคือสร้างโปรแกรมที่จะพิมพ์ชุดตัวเลขโดยไม่ใช้ลูปใดๆ

ชุดตัวเลขที่จะพิมพ์จะเริ่มจาก n และลบ k จนกลายเป็นศูนย์หรือติดลบ หลังจากนั้น เราจะเริ่มบวก k เข้าไปจนกลายเป็น n อีกครั้ง ในกระบวนการนี้ เราไม่สามารถใช้ลูปประเภทใดๆ ได้

ตัวอย่างเพื่อเข้าใจปัญหา

อินพุต

n = 12, k = 3

เอาต์พุต

12 9 6 3 0 3 6 9 12

เพื่อแก้ปัญหานี้โดยไม่ใช้ลูป เราจะใช้การเรียกซ้ำ (recursion) เราจะสร้างฟังก์ชันเรียกซ้ำที่จะเรียกตัวเองซ้ำและเก็บเงื่อนไขตรวจสอบค่าของตัวเลข เพื่อให้แน่ใจว่าต้องทำการบวกหรือลบกับตัวเลข

ฟังก์ชันจะใช้ flag ช่วยให้เราติดตามว่าค่าควรถูกลบหรือบวก

โปรแกรม 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 << "ชุดตัวเลขคือ: \n";
    PrintSeriesRec(N, N, K, true);
    return 0;
}

ผลลัพธ์

ชุดตัวเลขคือ —

12 8 4 0 4 8 12