89. Gray Code

来源:互联网 发布:福建网络广播电视台:{ 编辑:程序博客网 时间:2024/05/29 06:30
   /*Int    Grey Code    Binary 0      000        000      00^000          i=0将数字i右移一位,再与i异或运算 1      001        001      00^001          i=1将数字i右移一位,再与i异或运算 2      011        010      01^010          i=2将数字i右移一位,再与i异或运算 3      010        011      01^011          i=3将数字i右移一位,再与i异或运算 4      110        100      10^100          i=4将数字i右移一位,再与i异或运算 5      111        101      10^101          i=5将数字i右移一位,再与i异或运算 6      101        110      11^110          i=6将数字i右移一位,再与i异或运算 7      100        111      11^111          i=7将数字i右移一位,再与i异或运算     */    public List<Integer> grayCode(int n) {        List<Integer> list=new ArrayList<>();        for(int i=0;i<Math.pow(2,n);i++){            list.add((i>>1)^i);        }        return list;    }