回 帖 发 新 帖 刷新版面

主题:[原创]蛇形矩阵---抛砖引玉

CLS : INPUT m: DIM a(m, m): k = 0
FOR x = 1 TO m                      ,x为按蛇形前进的路径上的斜线编号
  IF x MOD 2 = 0 THEN
     th = m: tl = m + 1 - x         'th、tl分别为编号为x的斜线的起始位置坐标
     FOR i = 1 TO x                 '编号为x的斜线上,有x个单元
        k = k + 1: a(th, tl) = k: th = th - 1: tl = tl + 1
     NEXT i                         '此for语句是为了往x号斜线经过的单元填数
  ELSE                              '偶数号斜线上,沿箭头方向,行号递减,列号递增
     th = m + 1 - x: tl = m
     FOR i = 1 TO x
       k = k + 1: a(th, tl) = k: th = th + 1: tl = tl - 1
     NEXT i
  END IF
NEXT x
'以上为右下三角形矩阵范围内的程序,以下为左上角部分,解释几乎相同(略)
FOR x = m - 1 TO 1 STEP -1
  IF x MOD 2 = 0 THEN
     th = x: tl = 1
     FOR i = 1 TO x
        k = k + 1: a(th, tl) = k: th = th - 1: tl = tl + 1
     NEXT i
  ELSE
     th = 1: tl = x
     FOR i = 1 TO x
       k = k + 1: a(th, tl) = k: th = th + 1: tl = tl - 1
     NEXT i
  END IF
NEXT x
FOR i = 1 TO m
  FOR j = 1 TO m
    PRINT USING "###"; a(i, j);
  NEXT j: PRINT
NEXT i
END
'*****************以上是本人弄懂的n维蛇形方阵的编程,现笔者求以下(h,n)维蛇形矩阵的源程序的详细解释,请同意我与您单独交流。QQ:328353313  ********
----------------------------------------------------------
                    1  2  6
                    3  5  7
                    4  8  12
                    9  11 13
                    10 14 15 
----------------------------------------------------------
cls:input "h,n:",h,n         '以下程序是怎么形成的?突破口在哪里?
dim s(h,n)
xx=1:yy=-1                                   '此处的xx、yy变量起什么作用?
for i=1 to h*n
  x=x+xx
  y=y+yy
  if x<1 or x>h or y<1 or y>n then swap xx,yy '为何在满足以上条件时交换?为何要交换?
  if x>h then 
     x=h
     y=y+2                                    'x和y为什么是这样的变化规律?
  endif
  if y>n then 
     y=n
     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 n
    print using "###";s(i,j);
next j,i
end
'本程序简捷,且不一定要求是方阵,但我不知道是以什么为突破口的?语句如何解释?请哪位大侠指导为盼!

回复列表 (共16个回复)

11 楼

看起来好像不如 6 楼的 flyinggoon 的代码那么清爽,简洁哦。

请教高手 moz ,还能再优化吗?

12 楼

想要清爽,简洁,直观,
就少用点冒号。
你搞了那么长的表达式,我老眼昏花看不清楚,我也不知道有没有改进的机会,
为什么你自己不去考虑一下呢?

13 楼

楼上说得是啊

14 楼


我也来谈谈自己的想法 (灌水行为)

 [url=http://bbs.pfan.cn/post-288094.html][原创]分享:正方形的蛇形矩阵 - 个人思路分享[/url]

15 楼


真是很久没来这个论坛了。期间,不少高手跟贴,让人惭愧呀。

16 楼

大家都什么年代了还跟着QB跑,我虽然是个小学生,但也都学到C语言了好不好

我来回复

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