level 2
请设计一个程序,用1—9这九个数字组成3个三位的平方数,要求每个数字只能使用一次。例如:361、529、784就是符合条件的解,因为它们本身既是一个平方数,而且1—9这九个数字在这三个平方数中中出现了一次。
2010年10月12日 02点10分
1
level 7
CLS
DIM a(100), b(9)
FOR i = 10 TO 31
a(i) = i * i
NEXT i
FOR i = 1 TO 29
FOR j = i + 1 TO 30
FOR k = j + 1 TO 31
a$(1) = LTRIM$(STR$(a(i)))
a$(2) = LTRIM$(STR$(a(j)))
a$(3) = LTRIM$(STR$(a(k)))
FOR a = 1 TO 3
FOR b = 1 TO 3
x$ = MID$(a$(a), i, 1)
b(VAL(x$)) = b(VAL(x$)) + 1
IF b(VAL(x$)) = 2 THEN GOTO 1
NEXT b
NEXT a
PRINT a(i); a(j); a(k)
1 FOR a = 0 TO 9
b(a) = 0
NEXT a
NEXT k
NEXT j
NEXT i
END
2010年11月06日 02点11分
2
level 5
CLS
FOR i = INT(SQR(100)) TO INT(SQR(999))
j = i * i
j$ = STR$(j)
FOR k = 2 TO 4
a$(k - 1) = MID$(j$, k, 1)
NEXT k
IF a$(1) <> a$(2) AND a$(1) <> a$(3) AND a$(2) <> a$(3) THEN PRINT j;
NEXT i
END
2010年12月10日 18点12分
3
level 5
完整程序:
CLS
h = INT(SQR(999)) - INT(SQR(100))
DIM m(h)
FOR i = INT(SQR(100)) TO INT(SQR(999))
j = i * i
j$ = STR$(j)
FOR k = 2 TO 4
a$(k - 1) = MID$(j$, k, 1)
NEXT k
IF a$(1) <> a$(2) AND a$(1) <> a$(3) AND a$(2) <> a$(3) THEN n = n + 1: m(n) = j
NEXT i
FOR x = 1 TO n - 2
FOR y = x + 1 TO n - 1
FOR z = y + 1 TO n
x$ = RIGHT$(STR$(m(x)), 3)
y$ = RIGHT$(STR$(m(y)), 3)
z$ = RIGHT$(STR$(m(z)), 3)
p$ = x$ + y$ + z$
FOR i = 1 TO 9
p$(i) = MID$(p$, i, 1)
NEXT i
g = 1
FOR i = 1 TO 8
FOR j = i + 1 TO 9
IF p$(i) = p$(j) THEN g = 0: EXIT FOR ELSE g = 1
NEXT j
IF g = 0 THEN EXIT FOR
NEXT i
IF g = 1 THEN PRINT m(x); m(y); m(z)
NEXT z, y, x
END
2010年12月20日 19点12分
4
level 1
这些代码的共同特点,都堆在一起,可读性差,可修改性差.
只要历遍所有组合就可筛选出答案来
2010年12月24日 14点12分
5