格雷码输出

格雷码打印:打印出0~2n-1数,且相邻两个数只有一位不同。

#include<iostream>
#include<vector>
using namespace std;
int main()
{
    int n;
    cin>>n;
    vector<int> result;
    result.push_back(0);
    for(int i=0;i<n;i++)
    {
        int high_bit=1<<i;
        for(int j=result.size()-1;j>=0;j--)
        {
            result.push_back(result[j]|high_bit); 
        }
    }
    for(int i=0;i<result.size()-1;i++)
    {
        cout<<result[i]<<", ";
    }
    cout<<result[result.size()-1]<<endl;

}

 

posted @ 2016-10-15 20:59  beaglebone  阅读(170)  评论(0编辑  收藏  举报