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
本文介绍了一个用Java实现的格雷码生成算法。该算法通过递归方式生成指定位数的格雷码序列,并以二维数组形式展示。文章提供的代码能够生成4位格雷码,并按顺序打印出来。
2281

被折叠的 条评论
为什么被折叠?



