1. 数字的二进制位对应;可以转化为01数组来做。


void getNextPaiLie(vector<bool> &quanPaiLie) { for (int i= quanPaiLie.size()-1;i>=0;i-- ) { if (quanPaiLie[i]) { quanPaiLie[i] = false; } else { quanPaiLie[i] = true; return; } } } bool isOver(vector<bool> quanPaiLie) { for (size_t i=0;i<quanPaiLie.size();i++) { if (!quanPaiLie[i]) return false; } return true; } // 调用方式为 vector<bool> quanPaiLie(length,false); while (!isOver(quanPaiLie)) { getNextPaiLie(quanPaiLie); }