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

โปรแกรม C++ สร้างทุกชุดการจัดหมู่ (Combinations) ที่เป็นไปได้จาก a,b,c,d,e


นี่คือโปรแกรม C++ สำหรับสร้างทุกชุดการจัดหมู่ (Combinations) ที่เป็นไปได้จาก a, b, c, d, e

อัลกอริทึม

เริ่มต้น    รับจำนวนองค์ประกอบและองค์ประกอบต่างๆ เป็นอินพุต    ฟังก์ชัน Combi(char a[], int reqLen, int s, int currLen, bool check[], int l)    เพื่อพิมพ์ทุกชุดการจัดหมู่ที่เป็นไปได้ของชุดอาร์เรย์ที่กำหนด:    //    ที่นี่    char a[] = อาร์เรย์ตัวอักษร    reqLen = ความยาวที่ต้องการ    s = ตัวแปรเริ่มต้น    currLen = ความยาวปัจจุบัน    check[] = ตัวแปรบูลีน    l = ความยาวของอาร์เรย์    //    ส่วนตัวของฟังก์ชัน:       ถ้า currLen > reqLen          คืนค่า       มิฉะนั้น ถ้า currLen = reqLen          พิมพ์ลำดับที่สร้างขึ้นใหม่       ถ้า s = l          คืนค่า ไม่มีองค์ประกอบเหลือ       สำหรับทุกดัชนี มี 2 ทางเลือก:       ไปต่อกับ start เป็น 'true' และเรียก Combi() แบบเรียกซ้ำ พร้อมเพิ่มค่า 'currLen' และ 's'       หรือไปต่อกับ start เป็น 'false' และเรียก Combi() แบบเรียกซ้ำ พร้อมเพิ่มค่า 's' เท่านั้น จบ

ตัวอย่างโค้ด

#include<iostream> using namespace std; void Combi(char a[], int reqLen, int s, int currLen, bool check[], int l) {    if(currLen > reqLen)    return;    else if (currLen == reqLen) {       cout<<"\t";       for (int i = 0; i < l; i++) {          if (check[i] == true) {             cout<<a[i]<<" ";          }       }       cout<<"\n";       return;    }    if (s == l) {       return;    }    check[s] = true;    Combi(a, reqLen, s + 1, currLen + 1, check, l);    check[s] = false;    Combi(a, reqLen, s + 1, currLen, check, l); } int main() {    int i,n;    bool check[n];    cout<<"Enter the number of element array have: ";    cin>>n;    char a[n];    cout<<"\n";    for(i = 0; i < n; i++) {       cout<<"Enter "<<i+1<<" element: ";       cin>>a[i];       check[i] = false;    }    for(i = 1; i <= n; i++) {       cout<<"\nThe all possible combination of length "<<i<<" for the given array set:\n";       Combi(a, i, 0, 0, check, n);    }    return 0; }

ผลลัพธ์

Enter the number of element array have: 5 Enter 1 element: a Enter 2 element: b Enter 3 element: c Enter 4 element: d Enter 5 element: e The all possible combination of length 1 for the given array set: a b c d e The all possible combination of length 2 for the given array set: a b a c a d a e b c b d b e c d c e d e The all possible combination of length 3 for the given array set: a b c a b d a b e a c d a c e a d e b c d b c e b d e c d e The all possible combination of length 4 for the given array set: a b c d a b c e a b d e a c d e b c d e The all possible combination of length 5 for the given array set: a b c d e