我的位置: 首頁 > 學(xué)習(xí)專區(qū) > .NET技術(shù) > C語言實例 拉丁方陣

C語言實例 拉丁方陣

2013-06-19 09:34:34
來源:
[導(dǎo)讀] 構(gòu)造 NXN 階的拉丁方陣(2

構(gòu)造 NXN 階的拉丁方陣(2<=N<=9),使方陣中的每一行和每一列中數(shù)字1到N只出現(xiàn)一次。如N=4時:

1 2 3 4

2 3 4 1

3 4 1 2

4 1 2 3

*問題分析與算法設(shè)計

構(gòu)造拉丁方陣的方法很多,這里給出最簡單的一種方法。觀察給出的例子,可以發(fā)現(xiàn):若將每 一行中第一列的數(shù)字和最后一列的數(shù)字連起來構(gòu)成一個環(huán),則該環(huán)正好是由1到N順序構(gòu)成;對于第i行,這個環(huán)的開始數(shù)字為i。按照 此規(guī)律可以很容易的寫出程序。下面給出構(gòu)造6階拉丁方陣的程序。

*程序說明與注釋

#include

#define N 6 /*確定N值*/

int main()

{

int i,j,k,t;

printf("The possble Latin Squares of order %d are:\n",N);

for(j=0;j

{

for(i=0;i

{

t=(i+j)%N; /*確定該拉丁方陣第i 行的第一個元素的值*/

for(k=0;k

printf("%d",(k+t)%N+1);

printf("\n");

}

printf("\n");

}

}

*運行結(jié)果

The possble Latin Squares of order 6 are:

1 2 3 4 5 6 2 3 4 5 6 1 3 4 5 6 1 2

2 3 4 5 6 1 3 4 5 6 1 2 4 5 6 1 2 3

3 4 5 6 1 2 4 5 6 1 2 3 5 6 1 2 3 4

4 5 6 1 2 3 5 6 1 2 3 4 6 1 2 3 4 5

5 6 1 2 3 4 6 1 2 3 4 5 1 2 3 4 5 6

6 1 2 3 4 5 1 2 3 4 5 6 2 3 4 5 6 1

4 5 6 1 2 3 5 6 1 2 3 4 6 1 2 3 4 5

5 6 1 2 3 4 6 1 2 3 4 5 1 2 3 4 5 6

6 1 2 3 4 5 1 2 3 4 5 6 2 3 4 5 6 1

1 2 3 4 5 6 2 3 4 5 6 1 3 4 5 6 1 2

2 3 4 5 6 1 3 4 5 6 1 2 4 5 6 1 2 3

3 4 5 6 1 2 4 5 6 1 2 3 5 6 1 2 3 4

深圳北大青鳥

評論
熱點專題
>>
相關(guān)文章推薦
>>
好吊妞免费视频在线观看,久久亚洲国产人成综合网,久久精品国产2020,欧美精品综合在线
特级婬片女子高清视频国产 | 亚洲国产精品一区二区第一页免 | 伊人成人久久精品综合 | 午夜免费人成视频在线 | 亚洲精品国产超清 | 特级婬片女子高清视频国产 |