#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
vector<int> IntToBin(int n)
{
vector<int> Bin;
int tmp = n;
while (tmp)
{
Bin.push_back(tmp&1);
tmp =tmp >> 1;
}
return Bin;
}
int main()
{
int log2length;
cin >> log2length;
int length = pow(2, log2length);
vector<int> Graycode;
vector<int> Bin;
for (int i = 0; i < length; i++)
{
Graycode.push_back(0);
}
for (int i = 1; i < length; i++)
{
if (i % 2 == 1)
{
Graycode[i] = Graycode[i - 1]^1;
}
else
{
int j;
Bin = IntToBin(i);
for (j = 0; j < Bin.size(); j++)
{
if (Bin[j] != 0)
{
break;
}
}
Graycode[i] = Graycode[i - 1] ^ (1 << j);
}
}
return 0;
}
GrayCode代码(C++版)
最新推荐文章于 2022-03-22 22:05:43 发布