回 帖 发 新 帖 刷新版面

主题:螺旋直角等腰三角形

n=5时:
1
2  12
3  13 11
4  14 15 10
5  6  7  8  9

回复列表 (共3个回复)

沙发

简直是送分!
CLS
INPUT "N=",N
I=1
J=1
FX=1
FOR K=1 TO (1+N)*N/2
  A(I,J)=K
  IF FX=1 THEN I=I+1
  IF FX=2 THEN J=J+1 
  IF FX=3 THEN I=I-1:J=J-1
  F=0
  IF I>N OR J>N THEN
    F=1
  ELSEIF A(I,J)<>0 THEN 
    F=1
  ENDIF
  IF F=1 THEN
    IF FX=1 THEN I=I-1
    IF FX=2 THEN J=J-1 
    IF FX=3 THEN I=I+1:J=J+1
    FX=FX MOD 3+1
    IF FX=1 THEN I=I+1
    IF FX=2 THEN J=J+1 
    IF FX=3 THEN I=I-1:J=J-1
  ENDIF
NEXT I
FOR I=1 TO N
  FOR J=1 TO I
    PRINT USING"#";A(I,J);
  NEXT J
  PRINT
NEXT I
END

板凳

谢谢啊!

3 楼

这还简单?
CLS
INPUT n: t = 0
FOR j = 1 TO n: t = t + j: NEXT j
DIM a(n, n): x = 1: y = 1: s = 1: k = n: m = 0: a(x, y) = s
IF n = 1 THEN 1
DO
  k = k - 1
  FOR i = 1 TO k
      s = s + 1: x = x + 1: a(x, y) = s
      IF s = t THEN 1
  NEXT i
  IF m THEN k = k - 1
  FOR i = 1 TO k
      s = s + 1: y = y + 1: a(x, y) = s
      IF s = t THEN 1
  NEXT i
  k = k - 1
  FOR i = 1 TO k
      s = s + 1: x = x - 1: y = y - 1: a(x, y) = s
      IF s = t THEN 1
  NEXT i
  m = 1
LOOP
1 FOR i = 1 TO n: FOR j = 1 TO n
    IF i >= j THEN PRINT USING "####"; a(i, j);
NEXT j: PRINT : NEXT i: END

我来回复

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