格雷码算法

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);
} 

你可能感兴趣的:(格雷码算法)