¢ÛÓÃÒ»¸öforÑ»·½«ÎÊÌâ·Ö³É¼¸²¿·Ö£¬¶ÔÓÚk=3£¬n=8£¬½«ÎÊÌâ·Ö³É3´ó²¿·Ö£¬µÚÒ»²¿·ÖΪ£¬¸ù¾ÝÒѾÌî³äµÄµÚÒ»ÐУ¬ÌîдµÚ¶þÐУ¬µÚ¶þ²¿·ÖΪ£¬¸ù¾ÝÒѾÌî³äºÃµÄµÚÒ»²¿·Ö£¬ÌîдµÚÈýËÄÐУ¬µÚÈý²¿·ÖΪ£¬¸ù¾ÝÒѾÌî³äºÃµÄÇ°ËÄÐУ¬Ìîд×îºóËÄÐС£
for (int s=1;s<=k;s++) N/=2;
¢ÜÓÃÒ»¸öforÑ»·¶Ô¢ÛÖÐÌáµ½µÄÿһ²¿·Ö½øÐл®·Ö
for(int t=1;t<=N;t++)
¶ÔÓÚµÚÒ»²¿·Ö£¬½«Æä»®·ÖΪËĸöСµÄµ¥Ôª£¬¼´¶ÔµÚ¶þÐнøÐÐÈçÏ»®·Ö
ͬÀí£¬¶ÔµÚ¶þ²¿·Ö£¨¼´ÈýËÄÐУ©£¬»®·ÖΪÁ½²¿·Ö£¬µÚÈý²¿·ÖͬÀí ¢Ý×îºó£¬¸ù¾ÝÒÔÉÏforÑ»·¶ÔÕûÌåµÄ»®·ÖºÍ·ÖÖ稵Ä˼Ï룬½øÐÐÿһ¸öµ¥Ôª¸ñµÄÌî³ä¡£Ìî³äÔÔòÊÇ£º¶Ô½ÇÏßÌî³ä for(int i=m+1;i<=2*m;i++) //i¿ØÖÆÐÐ for(int j=m+1;j<=2*m;j++) //j¿ØÖÆÁÐ {
a[i][j+(t-1)*m*2] = a[i-m][j+(t-1)*m*2-m];/*ÓÒϽǵÄÖµµÈÓÚ×óÉϽǵÄÖµ */
a[i][j+(t-1)*m*2-m] = a[i-m][j+(t-1)*m*2];/*×óϽǵÄÖµµÈÓÚÓÒÉϽǵÄÖµ */ }
Àý£ºÓɳõʼ»¯µÄµÚÒ»ÐÐÌî³äµÚ¶þÐÐ
Ìì½ò¹¤³Ìʦ·¶Ñ§Ôº
9
1 2 2 1 3 4 4 3 5 6 6 5 7 8 8 7 ÓÉs¿ØÖƵĵÚÒ»²¿·ÖÌîÍꡣȻºóÊÇs++£¬½øÐеڶþ²¿·ÖµÄÌî³ä 1 2 3 4
2 1 4 3
3 4 1 2
4 3 2 1
5 6 7 8
6 5 8 7
7 8 5 6
8 7 6 5
×îºóÊǵÚÈý²¿·ÖµÄÌî³ä 1 2 3 4 5 6 7 8
¢ÞÕâÑùÑ»·£¬Ö±µ½Ìî³äÍê±Ï£¬a[][]Êý×é±»¸³ÓèÐÂÖµ¡£ 3.print£¨£©º¯Êý
£¨1£©º¯Êý¹¦ÄÜ£º½«°²ÅźõÄÈüÊÂÈճ̣¬¼´¶þάÊý×éa[n][n-1]Êä³öµ½ÆÁÄ»¡£
Ìì½ò¹¤³Ìʦ·¶Ñ§Ôº
10
2 1 4 3 6 5 8 7 3 4 1 2 7 8 5 6 4 3 2 1 8 7 6 5 5 6 7 8 1 2 3 4 6 5 8 7 2 1 4 3 7 8 5 6 3 4 1 2 8 7 6 5 4 3 2 1 £¨2£©º¯ÊýÖ÷Òª¹¦ÄÜʵÏÖ£º
º¯ÊýÖ÷ÒªÔËÓÃÒ»¸öforÑ»·£¬½«¶þάÊý×éa[n][n-1]Êä³öµ½ÆÁÄ»¡£ for( int i=1;i<=n;i++)//¿ØÖÆÐÐ {
cout< Ê®£®³ÌÐòÔËÐнá¹û ʮһ.Ìå»á ³ÌÐòÖ÷ÒªÔËÓÃÁË£ºÊý¾ÝÊäÈë¡¢º¯Êýµ÷Óᢺ¯Êý´«Öµ¡¢forÑ»·ÒÔ¼°¶þάÊý×éµÈÖ÷Òª½á¹¹ºÍ¹¦ÄÜ¡£¸ù¾Ý·ÖÖÎËã·¨£¬½«±¾ÎÊÌâ½øÐÐÁËÓÉС¹æÄ£µ½´ó¹æÄ£µÄÇó½âÉè¼Æ£¬³ÌÐòÉè¼ÆµÄ¹Ø¼üµãÔÚÓÚÈçºÎ¶ÔÎÊÌâ½øÐл®·ÖºÍÌî³ä¹«Ê½µÄ¹éÄÉ¡£ÔÚ»®·Öʱ£¬Ö÷ÒªÔËÓÃÁËÁ½¸öforÑ»·£»ÔÚÌî³äʱ£¬ÔËÓÃÁËÁ½¸öforÑ»·¡£ Ìì½ò¹¤³Ìʦ·¶Ñ§Ôº 11 ͨ¹ýÕâ´Î³ÌÐòÉè¼Æ£¬¼ÓÉîÁ˶ԷÖÖÎËã·¨µÄÈÏʶ¡£½â¾ö¾ßÌåÎÊÌâʱ£¬³ÌÐò¹ÊÖØÒª£¬µ«Ò»¸öºÃµÄËã·¨¸ü¼ÓÖØÒª¡£ ±¾³ÌÐòµÄµÃÒâÖ®´¦ÔÚÓÚ£¬¾¹ý×ÐϸÑо¿£¬ÕÒµ½ÁË»®·ÖµÄ·½·¨£¬²¢ÍƵ¼³öÁ˱í¸ñÌî³äµÄÁ½¸ö¹«Ê½¡£²»×ãÖ®´¦Ò²ÔÚ´Ë£¬¼´»¨·ÑÁ˺ܳ¤Ê±¼äÀ´ÍƵ¼Õâ¸ö£¬¶ÔËã·¨ÕÆÎÕ»¹²»¹»ÊìÁ·¡£ Ê®¶þ.¹¤¾ßÈí¼þ¼°ÔËÐл·¾³ 1.¹¤¾ßÈí¼þ£ºMicrosoft Visual C++ 6.0 2.ÔËÐл·¾³£ºWin32 Console Application Ìì½ò¹¤³Ìʦ·¶Ñ§Ôº 12 ¸½£º #include #include void print(int n,int a[100][100]); void arrangement(int n,int N,int k,int a[100][100]); int main() { int k; int a[100][100]; int n=1; cout<<\ÇëÊäÈë k\ cin >> k; for (int i=1;i<=k;i++) n *= 2;//n=2^k cout<<\²ÎÈüÈËÊý\ int N=n; arrangement(n, N, k, a); print(n,a); } void arrangement(int n,int N,int k,int a[100][100]) { for(int i=1;i<=N;i++) { a[1][i] = i; } int m =1; for (int s=1;s<=k;s++) { N/=2; for(int t=1;t<=N;t++) { for(int i=m+1;i<=2*m;i++) for(int j=m+1;j<=2*m;j++) { a[i][j+(t-1)*m*2]=a[i-m][j+(t-1)*m*2-m]; a[i][j+(t-1)*m*2-m]=a[i-m][j+(t-1)* m*2]; } } m *= 2; } } void print(int n,int a[100][100]) { cout<<\-\Ñ»·ÈüÈճ̱í\ cout< for(int p=1;p cout< for( int i=1;i<=n;i++) { cout<