C++递归实现格雷码

来源:互联网 发布:淘宝店铺取名字 编辑:程序博客网 时间:2024/06/13 04:37
#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;}}

0 0
原创粉丝点击