#include<iostream>
#include<string>
#include<vector>
using namespace std;
/// 第一次遇到递归输出格雷码这道题的时候,就知道格雷码的编码上肯定是存在某种规律的,但是我找到的各种规律却
///很难用代码描述出来。后来在网上找了很多资料,发现格雷码原来有这样一种规律:
/// n位格雷码其实是在n-1位格雷码的基础上添加0、1得到的,添加规律为 n-1位格雷码正序前面添加0 逆序格雷码
/// 前面添加1 即可得到n位的格雷码
vector<string> GetGrayCode(int nBit)
{
vector<string>result;
if(nBit==0)
{
return result;
}
else if(nBit==1)
#include<string>
#include<vector>
using namespace std;
/// 第一次遇到递归输出格雷码这道题的时候,就知道格雷码的编码上肯定是存在某种规律的,但是我找到的各种规律却
///很难用代码描述出来。后来在网上找了很多资料,发现格雷码原来有这样一种规律:
/// n位格雷码其实是在n-1位格雷码的基础上添加0、1得到的,添加规律为 n-1位格雷码正序前面添加0 逆序格雷码
/// 前面添加1 即可得到n位的格雷码
/// 比如 1位格雷码为 0 1,则2位为 00 01 11 10 三位为 000 001 011 010 110 111 101 100
vector<string> GetGrayCode(int nBit)
{
vector<string>result;
if(nBit==0)
{
return result;
}
else if(nBit==1)