格雷码
public void graycode(int n){
//如果n等于零,直接返回
if(n == 0){
return;
}
//递归调用(n - 1)
graycode(n - 1);
//打印n
System.out.println(""+n);
//递归调用(n - 1)
graycode(n - 1);
}
变体:
public void graycode(int n,boolean flag){
//如果n等于零,直接返回
if(n == 0){
return;
}
//递归调用(n - 1)
graycode(n - 1,true);
//打印n
if(flag){
System.out.println("go " + n);
} else {
System.out.println("out " + n);
}
//递归调用(n - 1)
graycode(n - 1,false);
}