主题:请MOZ和Matodied看看
wzc1996
[专家分:1680] 发布于 2007-07-23 11:43:00
、排成三位数
不论用什么方法总可以将数1、2、3、4、5分成每三个不同的数为一组,使该组当中的数字减去首位数等于尾数,减去尾数等于首位数字。
此题什么意思?
并加上解法!
来着加分
回复列表 (共5个回复)
沙发
剑圣风暴 [专家分:450] 发布于 2007-07-23 12:28:00
板凳
Matodied [专家分:7560] 发布于 2007-07-23 13:40:00
好像就是求5个数中取3个排列的。
排列的程序:
DECLARE SUB find (i!)
CLS
DIM SHARED m, n
m = 5: n = 3
DIM SHARED a(n)
find 1
END
SUB find (i)
FOR j = 1 TO m
a(i) = j: f = 1
FOR k = 1 TO i - 1
IF a(i) = a(k) THEN f = 0: EXIT FOR
NEXT k
IF f THEN
IF i < n THEN
find i + 1
ELSE
FOR k = 1 TO n: PRINT a(k); : NEXT k: PRINT
END IF
END IF
NEXT j
END SUB
3 楼
yfyf [专家分:440] 发布于 2007-07-24 09:38:00
DECLARE SUB find (i!)
CLS
DIM SHARED m, n
m = 5: n = 3
DIM SHARED a(n)
find 1
END
SUB find (i)
FOR j = 1 TO m
a(i) = j: f = 1
FOR k = 1 TO i - 1
IF a(i) = a(k) THEN f = 0: EXIT FOR
NEXT k
IF f THEN
IF i < n THEN
find i + 1
ELSE
FOR k = 1 TO n: PRINT a(k); : NEXT k: PRINT
END IF
END IF
NEXT j
END SUB
4 楼
bond007 [专家分:130] 发布于 2007-07-31 11:53:00
DECLARE SUB find (i!)
CLS
DIM SHARED m, n
m = 5: n = 3
DIM SHARED a(n)
find 1
END
SUB find (i)
FOR j = 1 TO m
a(i) = j: f = 1
FOR k = 1 TO i - 1
IF a(i) = a(k) THEN f = 0: EXIT FOR
NEXT k
IF f THEN
IF i < n THEN
find i + 1
ELSE
FOR k = 1 TO n: PRINT a(k); : NEXT k: PRINT
END IF
END IF
NEXT j
END SUB
5 楼
Matodied [专家分:7560] 发布于 2007-07-31 22:09:00
楼上的用户名是抄人家007bond的。
我来回复