只需要列举出四位的格雷码就能发现规律;
import java.util.*;
public class GrayCode {
public String[] getGray(int n) {
String[] s = new String[(int) Math.pow(2,n)];
s[0] = "0";
s[1] = "1";
if (n == 1) {
return s;
}
List<String> shun = new ArrayList<String>();
shun.add(s[0]);
shun.add(s[1]);
for (int i = 2; i <= n; i++) {
int mianJi = (int) Math.pow(2,i-1);
for (int j = 0; j < mianJi; j++) {
String string = "0" + shun.get(j);
String stringTwo = "1" + shun.get(j);
shun.set(j,string);
shun.add(mianJi,stringTwo);
}
}
for (int k = 0; k < shun.size(); k++) {
s[k] = shun.get(k);
}
return s;
}
}