1


複雑なループを作成する方法を見つけようとしていますが、解決策が見つかりません。

私は2つのテーブルを持っており、それぞれが任意の人数を収容できます。
私は人々を置くことができるすべての可能性を得るためにループを作りたいです!
各人は、たとえば5人のIDで表されます。各桁は個人のIDです。
私は人々を着席させるための可能な方法が何であるかを知る必要があります!

table1   table2

(nobody) 12345
1        2345
2        1345
3        1245
4        1235
5        1234
12       345
13       245
14       235
15       234
23       145
24       135
25       134
34       125
35       124
45       123
4

1 に答える 1

2
#include <stdio.h>

int main(void) {
    unsigned people = 5;

    printf("There are %u lights.\n", people);

    for (unsigned i = 0; i < 1u << people; i++) {
        for (unsigned p = 0; p < people; p++) {
            if (i >> p & 1u) {
                printf("%u", p + 1);
            }
        }
        fputs("\t|\t", stdout);
        for (unsigned p = 0; p < people; p++) {
            if (!(i >> p & 1u)) {
                printf("%u", p + 1);
            }
        }
        putchar('\n');
    }

    return 0;
}
于 2012-11-24T19:19:03.817 に答える