すべてのK要素のサブセットを一覧表示---2013年1月26日
10222 ワード
質問の説明:1つのセットの要素の個数kのすべてのサブセットをリストします.
考え方:辞書の順序ですべてのサブセットをリストした上で要素の個数を判断すればいいので、簡単です.コードは次のとおりです.
参考資料:『C言語名題精選百則技巧編』
もし私の文章があなたに役に立つと思ったら、ほめてください.ありがとうございます.
考え方:辞書の順序ですべてのサブセットをリストした上で要素の個数を判断すればいいので、簡単です.コードは次のとおりです.
1 #include
2 #define MAX 1000
3
4 int main()
5 {
6 int n=5;
7 int set[MAX]={1};
8 int index=0;
9 int count=2;
10 int k=3;
11 while(set[0]!=n)
12 {
13 if(set[index]<n)
14 {
15 set[index+1]=set[index]+1;
16 index++;
17 }
18 else
19 {
20 index--;
21 set[index]++;
22 }
23 int a_index;
24 count++;
25 if(index==k-1)
26 {
27 printf("%d:{",count);
28 for(a_index=0;a_index<=index;a_index++)
29 printf("%d ",set[a_index]);
30 printf("}
");
31 }
32 }
33 return 0;
34 }
参考資料:『C言語名題精選百則技巧編』
もし私の文章があなたに役に立つと思ったら、ほめてください.ありがとうございます.