[不懂就要问]求大神解释此C程序的每一步,关于格雷码的,急呀
#include<stdio.h>#define MAXBIT 20
int M;//位数;
int Gray[MAXBIT];//存放格雷码;
//打印格雷码
void Display()
{
int i;
for(i=0;i<M;i++)
printf("%d",Gray[i]);
printf("\n");
}
void GrayCode(int n,int code)//n为层数,code为该层值;
{
if(Gray[n]==0)
Gray[n]=code;
else
Gray[n]=1-code;
if(n==M-1)//底层;
{
Display();
return;
}//if
GrayCode(n+1,0);
GrayCode(n+1,1);
}
int main()
{
printf("请输入需要的bit数:");
scanf("%d",&M);
GrayCode(0,0);
GrayCode(0,1);
}