public class gray{
public void graycode(int n,int b,int arr[][]){
if(n==0)
return;
for(int i=0;i<b/2;i++){
arr[i][n-1]=0;
arr[b-i-1][n-1]=1;
}
graycode(n-1,b/2,arr);
for(int k=b/2;k<b;k++)
for(int j=0;j<n-1;j++)
arr[k][j]=arr[b-k-1][j];
}
public static void main(String[] args) {
gray g1=new gray();
int arry[][]=new int[16][4];
g1.graycode(4,16, arry);
for(int i=0;i<16;i++){
for(int j=0;j<4;j++)
System.out.print(arry[i][j]);
System.out.print("\n");
}
}
}
运行结果:
0000
1000
1100
0100
0110
1110
1010
0010
0011
1011
1111
0111
0101
1101
1001
0001