回 帖 发 新 帖 刷新版面

主题:回溯法:元素的拆分

CLS
INPUT N
LLL = TIMER
DIM a(N)
i = 1
WHILE i > 0
 a(i) = a(i) + 1
 IF a(i) > N - 1 THEN
  a(i) = 0
  i = i - 1
 ELSE
  GOSUB 10
  IF i < N AND f = -1 THEN i = i + 1
 END IF
WEND
PRINT N; "="; N
PRINT S, TIMER - LLL
END
10
f = -1
FOR j = 1 TO i - 1
 IF a(j) > a(i) THEN f = 0: RETURN
NEXT j
k = 0
FOR j = 1 TO i
 k = k + a(j)
NEXT j
IF k <> N THEN RETURN
PRINT N; "=";
FOR j = 1 TO i - 1
 PRINT a(j); "+";
NEXT j
PRINT a(j)
S = S + 1
RETURN


回复列表 (共7个回复)

沙发

CLS
INPUT N
LLL = TIMER
DIM a(N)
i = 1
WHILE i > 0
 a(i) = a(i) + 1
 IF a(i) > N - 1 THEN
  a(i) = 0
  i = i - 1
 ELSE
  GOSUB 10
  IF i < N AND f = -1 THEN i = i + 1
 END IF
WEND
PRINT N; "="; N
PRINT S, TIMER - LLL
END
10
f = -1
FOR j = 1 TO i - 1
 IF a(j) > a(i) THEN f = 0: RETURN
NEXT j
k = 0
FOR j = 1 TO i
 k = k + a(j)
NEXT j
IF k <> N THEN RETURN
PRINT N; "=";
FOR j = 1 TO i - 1
 PRINT a(j); "+";
NEXT j
PRINT a(j)
S = S + 1
RETURN

你西小的吧?

板凳

你是谁

3 楼

你说你是谁,我就给你分

4 楼

我姓吴!!!!!!!!!!!!!!

5 楼

给我分!!!张子健

6 楼

我给你分,小吴

7 楼

我顶你!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

我来回复

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