您好我是一个c++初学者,现在遇到了一个希尔伯特曲线程序,我不太明白它的算法,您能帮我解释一下么?谢谢您了#include<iostream>using std::cin;using std::cout;using std::endl;void main(){ int i; int lines[9]; lines[0]=1; for(i=1;i<9;i++) { lines[i]=lines[i-1]*2+1; } char Hilbert[520][520]; Hilbert[0][0]='x'; int r=1; for(i=1;i<9;i++) { for(int j=0;j<r;j++) for(int k=0;k<r;k++) { Hilbert[j][r+1+k]=Hilbert[k][r-1-j]; Hilbert[r+1+j][k]=Hilbert[j][k]; Hilbert[r+1+j][r+1+k]=Hilbert[r-1-k][j]; } Hilbert[0][r]='x'; Hilbert[r][r-1]='x'; Hilbert[2*r][r]='x'; r=r*2+1; } int n; while(cin>>n) { for(int i=0;i<lines[n];i++) { int len=lines[n]-1; while(Hilbert[i][len]!='x') len--; for(int j=0;j<=len;j++) { if(Hilbert[i][j]=='x') cout<<Hilbert[i][j]; else cout<<' '; } cout<<endl; } cout<<endl; }}