主题:帮帮我
QB阿呆
[专家分:0] 发布于 2007-09-01 17:34:00
N=4时,
1 2 9 10
4 3 8 11
5 6 7 12
16 15 14 13
回复列表 (共6个回复)
沙发
QB爱好者 [专家分:370] 发布于 2007-09-01 17:46:00
挺简单的!!
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
板凳
Matodied [专家分:7560] 发布于 2007-09-02 09:57:00
此题就是把蛇形矩阵变个样而已。
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 楼
网虫一号 [专家分:1230] 发布于 2007-09-04 14:25:00
超级简单!
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 楼
网虫一号 [专家分:1230] 发布于 2007-09-04 14:26:00
5 楼
QB爱好者 [专家分:370] 发布于 2007-09-06 15:11:00
如果要改变方向就把MOD 2=1改成 MOD 2=0.
6 楼
Matodied [专家分:7560] 发布于 2007-09-06 22:13:00
此题就是控制x、y的位置,使它们又不出界又不冲掉已经赋上的值。
我来回复