主题:请教高手
强强
[专家分:4740] 发布于 2007-05-26 20:56:00
在N行N列的数阵中, 数K(1〈=K〈=N)在每行和每列中出现且仅
出现一次,这样的数阵叫N阶拉丁方阵。例如下图就是一个五阶拉丁方阵。
编一程序,从键盘输入N值后,打印出所有不同的N阶拉丁方阵,并统计个数。
1 2 3 4 5
2 3 4 5 1
3 4 5 1 2
4 5 1 2 3
5 1 2 3 4
最后更新于:2007-05-26 21:00:00
回复列表 (共3个回复)
沙发
Matodied [专家分:7560] 发布于 2007-05-26 21:10:00
CLS
INPUT n
DIM a(n, n)
FOR i = 1 TO n
a(i, 1) = i: k = i
FOR j = 2 TO n
k = k + 1
IF k > n THEN k = 1
a(i, j) = k
NEXT j, i
FOR i = 1 TO n: FOR j = 1 TO n
PRINT USING "###"; a(i, j);
NEXT j: PRINT : NEXT i: END
我这个只能打出来1个,不知道怎么回事。
你能把规律告诉我吗?
板凳
moz [专家分:37620] 发布于 2007-05-27 08:23:00
把那五行的顺序打乱排列就是了.
其实总数也就是等于N个单位的排列总数
=1*2*3*4*5=120种
3 楼
ninke [专家分:60] 发布于 2007-05-27 19:29:00
楼上2位动作太快了,我看到你们的程序就不愿意回答了。
我来回复