我试图弄清楚如何创建一个复杂的循环,但我找不到任何解决方案。
我有2张桌子,每张桌子可以容纳任意数量的人
我想创建一个循环,以获得我可以把人们放在一起的所有可能性!
每个人都由一个ID代表,例如5个人。
每个数字都是人的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
答案 0 :(得分: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;
}