double derive(int n,double i)
{
if(n==1&&i==1)
return 0;
else if(n==1&&i==2)
return 1;
else if(i> pow(2,n-1))
return derive(n-1,pow(2,n)-i+1)+pow(2,n-1);
else
return derive(n-1,i);
}
void convert(int n,double i)
{
int left;
for(int time=1;time <n+1;time++)
{
left=i-((int)(i/2))*2;
i=(int)(i/2);
cout < <left;
}
cout < <endl;
}
int main(int argc, char* argv[])
{
int n;
cout < <"输入一个整数(格雷码的位数):";
cin> > n;
double i;
for(i=1;i <pow(2,n)+1;i++)
{
convert(n,derive(n,i));
}
getchar();
return 0;
}
谁可以把它用java表示的啊?