求解n位格雷码

 1 /*************************************************************************
 2     > File Name:        Gray.cpp
 3     > Author:         wangzhili
 4     > Mail:           wangstdio.h@gmail.com
 5     > Created Time:   2014年03月17日 星期一 21时23分04秒
 6  ************************************************************************/
 7 #include<iostream>
 8 #include<vector>
 9 using namespace std;
10 //求n位格雷码序列, Grey序列的第位i为 i xor (i >> 1);
11 vector<int> Gray_Create(int n){
12     vector<int> res;
13     res.clear();
14     for(int i = 0;i < (1 << n);i ++){
15         res.push_back(i^(i >> 1));
16     }
17     return res;
18 }
19 
20 int main(){
21     int n;
22     while(cin >> n){
23         vector<int> ans = Gray_Create(n);
24         for(int i = 0;i < ans.size();i ++){
25             cout << ans.at(i) << endl;
26         }
27     }
28     return 0;
29 }
30     
原文地址:https://www.cnblogs.com/anhuizhiye/p/3606201.html