主题:蛇形矩阵
cixiqianjin
[专家分:0] 发布于 2005-10-26 19:43:00
1 2 6
3 5 7
4 8 12
9 11 13
10 14 15
回复列表 (共2个回复)
沙发
zqnhlm [专家分:780] 发布于 2005-10-29 17:27:00
DIM n AS INTEGER
INPUT n
DIM i AS INTEGER
DIM j AS INTEGER
DIM s AS INTEGER
DIM b AS INTEGER
DIM a(n, n) AS INTEGER
s = 1
FOR i = 1 TO n
IF i MOD 2 = 0 THEN
b = i
FOR j = 1 TO i
a(b, j) = s
s = s + 1
b = b - 1
NEXT j
ELSE
b = 1
FOR j = i TO 1 STEP -1
a(b, j) = s
s = s + 1
b = b + 1
NEXT j
END IF
NEXT i
FOR i = n - 1 TO 1 STEP -1
IF i MOD 2 <> 0 THEN
b = n + 1 - i
FOR j = n TO n + 1 - i STEP -1
a(b, j) = s
s = s + 1
b = b + 1
NEXT j
ELSE
b = n
FOR j = n + 1 - i TO n
a(b, j) = s
s = s + 1
b = b - 1
NEXT j
END IF
NEXT i
FOR i = 1 TO n
FOR j = 1 TO n
PRINT TAB(5 * j); a(i, j);
NEXT j
PRINT
PRINT
NEXT i
END
方向不一样,自己去改吧,以前做的,我都忘光了,哎!!!
板凳
moz [专家分:37620] 发布于 2005-10-30 13:35:00
回过的贴太多了,
不知道怎么找了。
input "h,l:",h,l
dim s(h,l)
xx=1
yy=-1
for i=1 to h*l
x=x+xx
y=y+yy
if x<1 or x>h or y<1 or y>l then swap xx,yy
if x>h then
x=h
y=y+2
endif
if y>l then
y=l
x=x+2
endif
if x<1 then x=1
if y<1 then y=1
s(x,y)=i
next
for i=1 to h
print
for j=1 to l
print using "###";s(i,j);
next j,i
我来回复