#include#include #define NUM (100)int n;char A[NUM] = {'A', 'B' , 'C'};int B[NUM];void SubSet(int n, int B[], int level){ int i; if (level == n) { printf("{ "); for (i = 0; i < level; i++) if(B[i]) printf("%C ", A[i]); // 打印当前集合 printf("}\n"); return; } B[level] = 1; // 选第level个元素 SubSet(n, B, level + 1); B[level] = 0; //不选第level个元素 SubSet(n, B, level + 1);}int main(){ // 3 表示 3个元素 n = 3; SubSet(n ,B, 0); return 0; }
输出结果:
{ A B C }{ A B }{ A C }{ A }{ B C }{ B }{ C }{ }