#include <iostream> using namespace std; // 输出一个集合的所有子集,集合中有8个元素。 // 看成排列组合问题,一个元素被选则为状态为 1,没选中则状态为 0 // 正好可以用二进制位表示,0000 0001表示只选第一个,1111 1111表示全选 // 0000 00001 ~ 1111 1111 即1~255 int main() { int data[8] = {1, 2, 3, 4, 5, 6, 7, 8}; int mark = 1; int index = 0; cout.width(2); for(int i = 1; i < 256; i++) // 2^8 = 256 { cout.width(2); cout << i << " : "; mark = 1; index = 0; for(int j = 0; j < 8; j++) { index = mark & i; if(0 != index) // 该位置是1,状态是选中 { cout << data[j] << " "; } mark <<= 1; } cout << endl; } system("pause"); return 0; }
以上就是土豪篮球最近收集整理的关于输出一个集合的所有子集的全部内容,更多相关输出一个集合内容请搜索靠谱客的其他文章。
发表评论 取消回复