格雷码算法

来源:互联网 发布:如何进入投资银行知乎 编辑:IT博客网 时间:2019/07/20 17:48

void putsgray(int a[],int m)
{
 int i;
 for(i=m;i>=1;i--)
 {
  printf("%d",a[i]);
 }
 printf("/n");

}
void gray(int n,int a[],int m)
{
     if(n==1)
     {
 a[n]=1-a[n];
 putsgray(a,m);
     }
     else
     {
 gray(n-1,a,m);
 a[n]=1-a[n];
 putsgray(a,m);
 gray(n-1,a,m);
     }

}

main()
{
 int a[4]={0};
 putsgray(a,3);
 gray(3,a,3);
}