Ñ­»·ÈüÈճ̱íʵÑ鱨¸æ ÏÂÔر¾ÎÄ

¢ÛÓÃÒ»¸ö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 using namespace std;

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<

for(int j=2;j<=n;j++) cout<

} }

Ìì½ò¹¤³Ìʦ·¶Ñ§Ôº 13