1 //生成reflected gray code 2 //每次调用gray取得下一个码 3 //000...000是第一个码,100...000是最后一个码 4 void gray(int n,int *code){ 5 int t=0,i; 6 for (i=0;i<n;t+=code[i++]); 7 if (t&1) 8 for (n--;!code[n];n--); 9 code[n-1]=1-code[n-1]; 10 }