用递归方法产生格雷码;

来源:互联网 发布:php函数大全 编辑:程序博客网 时间:2024/05/16 10:45
public class ThrowDemo02{public static void main(String[] args) {       String[] strArr = GrayCode(3);//产生8位的格雷码    for(int i = 0 ; i < strArr.length ; i++){        System.out.println(strArr[i]);    }   }    public static String[] GrayCode(int n) {    String[] grayCodeArr = new String[(int)Math.pow(2, n)];       if(n < 1){        System.out.println("你输入的格雷码位数有误!");    }      if(1 == n){        grayCodeArr[0] = "0";        grayCodeArr[1] = "1";        return grayCodeArr;    }    String[] before = GrayCode(n-1); //递归调用      for(int i = 0 ; i < before.length ; i++){        grayCodeArr[i] = "0" + before[i];        grayCodeArr[grayCodeArr.length -1 - i] = "1" + before[i];    }     return grayCodeArr;      }}