格雷码
相邻两个数的二进制位只有一位不同
cpp
vector<int> gray_code(int n){
vector<int> res;
for(int i=0;i<(1<<n);i++){
res.push_back(i^(i>>1));//第i位即i^(i>>1)
}
return res;
}