一个格雷码问题,线程错误,求助,急
public class gray{
	public static void main(String args[]){
		StringBuffer[] buffer = new  StringBuffer[256];
		int tem = 0;
		graynum(3,buffer,tem);
		System.out.print(buffer);
	}
	static void graynum(int n,StringBuffer []a,int tem){
	if(n==0){
			a[0].append("0");
			a[1].append("1");
			tem=1;
		}
		for(n=(int)Math.pow(2, tem);n>0;n--){
			if(n%2!=0)
				{
				a[n]=a[(n+1)/2].append("0");
				}
			else
				a[n]=a[n/2].append("1");
		}
		++tem;
	
}
}
就是这个,线程是错误的,一晚上没改对,求助
              
------解决方案--------------------StringBuffer[] buffer = new  StringBuffer[256];
定义了一个数组,但是buffer[i]都是null,不能直接append使用,使用前可以buffer[i] = new StringBuffer()一下,或者每一个都初始化下。