回 帖 发 新 帖 刷新版面

主题:请教高手

在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

回复列表 (共3个回复)

沙发

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个,不知道怎么回事。
你能把规律告诉我吗?

板凳

把那五行的顺序打乱排列就是了.
其实总数也就是等于N个单位的排列总数
=1*2*3*4*5=120种

3 楼

楼上2位动作太快了,我看到你们的程序就不愿意回答了。

我来回复

您尚未登录,请登录后再回复。点此登录或注册