主题:本人跪求高手解答
编程黑客
[专家分:1660] 发布于 2005-08-11 22:35:00
请各位高手帮忙想想这道题怎么做?
1 3 4 10 11
2 5 9 12 19
6 8 13 18 20
7 14 17 21 24
15 16 22 23 25
N行N列
我8月20号比赛,帮忙啦![em4][em5]
回复列表 (共16个回复)
11 楼
moz [专家分:37620] 发布于 2005-08-26 01:04:00
大家都做过了
该轮到我哆嗦几句了
(第10楼的结果好像不太合题意喔)
input n
if n>25 then system
cls : xx=1 : yy=-3 : y=4
for i=1 to n*n
x=x+xx : y=y+yy
if x<1 or x>n or y<1 or y>n*3 then xx=-xx : yy=-yy
if x>n then x=n : y=y+yy+yy
if y>n*3 then y=n*3-2 : x=x+xx+xx
if x<1 then x=1
if y<1 then y=1
locate x,y
print using "###";i;
next
为了显得比你们简洁,我用了很多冒号,这是不对的,这种行径希望大家要戒.
12 楼
moz [专家分:37620] 发布于 2005-08-26 01:25:00
我再倒回来看看你们写出来的程序,
第10楼写得不对,可能是没有检查过,
zqnhlm 写得很有意思,
让我研究了大半天才弄明白.
嗯,写得很好,很不错!
继续努力学习其他语句的技巧.
13 楼
编程黑客 [专家分:1660] 发布于 2005-08-31 21:33:00
谢谢各位高手,我也自己编出来了这道题,程序是:
CLS
INPUT n
DIM a(100, 100)
s = 1
i = 1
j = 1
bj = 1
DO
DO WHILE j <= bj AND a(i, j) = 0
a(i, j) = s
i = i - 1
j = j + 1
s = s + 1
LOOP
i = i + 1
bj = bj + 1
DO WHILE i <= bj AND a(i, j) = 0
a(i, j) = s
s = s + 1
i = i + 1
j = j - 1
LOOP
j = j + 1
bj = bj + 1
LOOP UNTIL s > n * n
FOR i = 1 TO n
FOR j = 1 TO n + 1 - i
a(n + 1 - i, n + 1 - j) = n * n + 1 - a(i, j)
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
14 楼
spray [专家分:180] 发布于 2005-09-02 05:20:00
建议:请在标题中具体、明确点明主题,最好不用“小菜问题”、“跪求”之类的模糊标题。
15 楼
编程黑客 [专家分:1660] 发布于 2005-09-04 14:23:00
跪求表示了重要性呀!!
16 楼
jxx321 [专家分:240] 发布于 2005-09-05 21:03:00
CLS
a=1:b=1:t=1:x=1:y=-1:f=1:e=0
INPUT n
DIM s(n+1,n+1)
FOR i=1 to n*2-1
IF i<n THEN h=i ELSE h=2*n-i
FOR j=1 to h
s(a,b)=t
a=a+x:b=b+y
t=t+1
NEXT j
a=a-x:b=b-y
SWAP x,y
IF i=n THEN SWAP e,f
SWAP e,f
a=a+e:b=b+f
NEXT i
FOR i=1 to n
FOR j=1 to n
PRINT USING "###";s(i,j);
NEXT j
PRINT
NEXT i
END
我来回复