回 帖 发 新 帖 刷新版面

主题:帮帮我

N=4时,
1  2  9  10
4  3  8  11
5  6  7  12
16 15 14 13

回复列表 (共6个回复)

沙发

挺简单的!!
CLS
INPUT "N=",N
DIM A(N,N)
FOR I=1 TO N
  IF I MOD 2=0 THEN H=1:L=I ELSE H=I:L=1
  FOR J=1 TO I
    P=P+1
    A(H,L)=P
    IF I MOD 2=0 THEN H=H+1 ELSE L=L+1
  NEXT J
  IF I MOD 2=0 THEN H=I:L=I-1 ELSE H=I-1:L=I
  FOR J=1 TO I-1
    P=P+1
    A(H,L)=P
    IF I MOD 2=1 THEN H=H-1 ELSE L=L-1
  NEXT J
NEXT I
FOR I=1 TO N
  FOR J=1 TO N
    PRINT USING"####";A(I,J);
  NEXT J
  PRINT
NEXT I
END

板凳

此题就是把蛇形矩阵变个样而已。
CLS
INPUT n: DIM a(n, n)
s = 1: k = 1: x = 1: y = 1: a(x, y) = s
IF n = 1 THEN 1
DO
  y = y + 1: s = s + 1: a(x, y) = s
  FOR i = 1 TO k
      x = x + 1: s = s + 1: a(x, y) = s
  NEXT i
  FOR i = 1 TO k
      y = y - 1: s = s + 1: a(x, y) = s
  NEXT i
  IF s = n * n THEN 1
  x = x + 1: s = s + 1: a(x, y) = s: k = k + 1
  FOR i = 1 TO k
      y = y + 1: s = s + 1: a(x, y) = s
  NEXT i
  FOR i = 1 TO k
      x = x - 1: s = s + 1: a(x, y) = s
  NEXT i
  IF s = n * n THEN 1
  k = k + 1
LOOP
1 FOR i = 1 TO n: FOR j = 1 TO n
      PRINT USING "####"; a(i, j);
  NEXT j: PRINT : NEXT i
END

3 楼

超级简单!
CLS
INPUT N
DIM A(N, N)
READ V(1, 1), V(1, 2), V(2, 1), V(2, 2)
DATA 1,0,0,-1
X = 1: Y = 1: S = 1: A(1, 1) = 1
FOR I = 1 TO N - 1
IF I MOD 2 = 0 THEN X = X + 1 ELSE Y = Y + 1
S = S + 1: A(X, Y) = S
FOR J = 1 TO I
M = V(1, 1): K = V(1, 2)
IF I MOD 2 = 0 THEN SWAP M, K
X = X + M: Y = Y + K: S = S + 1: A(X, Y) = S
NEXT J
FOR J = 1 TO I
M = V(2, 1): K = V(2, 2)
IF I MOD 2 = 0 THEN SWAP M, K
X = X + M: Y = Y + K: S = S + 1: A(X, Y) = S
NEXT J, I
FOR I = 1 TO N
FOR J = 1 TO N
PRINT USING "####"; A(I, J);
NEXT J: PRINT
NEXT I
END

4 楼


5 楼

如果要改变方向就把MOD 2=1改成 MOD 2=0.

6 楼

此题就是控制x、y的位置,使它们又不出界又不冲掉已经赋上的值。

我来回复

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