#include<iostream>
#include<string>
using namespace std;
void GrayCode(int n,string *data)
{
if(n==1)
{
data[0]="0";
data[1]="1";
return;
}
GrayCode(n-1,data);
int len=(int)pow(2,n);
for(int i=len/2;i<len;i++)
{
data[i]="1"+data[len-i-1];
}
for(int i=0;i<len/2;i++)
{
data[i]="0"+data[i];
}
}
int main()
{
int n;
cin>>n;
string *data=new string[(int)pow(2,n)];
GrayCode(n,data);
for(int i=0;i<(int)pow(2,n);i++)
{
cout<<data[i]<<endl;
}
}
C++递归实现格雷码
最新推荐文章于 2023-03-17 10:58:13 发布