回 帖 发 新 帖 刷新版面

主题:蛇形矩阵

                    1  2  6
                    3  5  7
                    4  8  12
                    9  11 13
                    10 14 15

回复列表 (共2个回复)

沙发

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

方向不一样,自己去改吧,以前做的,我都忘光了,哎!!!

板凳

回过的贴太多了,
不知道怎么找了。

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

我来回复

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