回 帖 发 新 帖 刷新版面

主题:数字拆分

大侠们,紧急求助数字拆分,不是普通的,要是排列的,也就是拆下的数要能排列!!!!!!!比如:输入:4
       打印:121,211,......

回复列表 (共7个回复)

沙发

不是这种形式,好好看题目,121,211,算两种

板凳

kuai qu zhao ren ya

3 楼

这个题人家已经出过类似的了。

DECLARE SUB pri ()
CLS
DIM SHARED k, total, t
INPUT k
DIM SHARED a(k)
s = 0: t = 1
DO
  a(t) = a(t) + 1: s = s + a(t)
  IF s >= k THEN
     IF s = k THEN CALL pri
     s = s - a(t): t = t - 1
     IF t = 0 THEN EXIT DO
     s = s - a(t)
  ELSE
     t = t + 1: a(t) = 0
  END IF
LOOP UNTIL t = 0
PRINT "Total="; total
END

SUB pri
PRINT k; "=";
FOR i = 1 TO t - 1: PRINT a(i); "+"; : NEXT i
PRINT a(t)
total = total + 1
END SUB

4 楼

不要用子程序做,另外要把拆分的过程写出来!!!!!!!!!!!!!!!
[em52][em52][em52][em52][em52][em52]
[em21][em21][em21][em21][em21][em21]

5 楼

CLS
INPUT k
DIM a(k)
s = 0: t = 1
DO
  a(t) = a(t) + 1: s = s + a(t)
  IF s >= k THEN
     IF s = k THEN 
        PRINT k; "=";
        FOR i = 1 TO t - 1: PRINT a(i); "+"; : NEXT i
        PRINT a(t)
        total = total + 1
     END IF
     s = s - a(t): t = t - 1
     IF t = 0 THEN EXIT DO
     s = s - a(t)
  ELSE
     t = t + 1: a(t) = 0
  END IF
LOOP UNTIL t = 0
PRINT "Total="; total
END

6 楼

DECLARE SUB WSY ()
CLS
DIM SHARED T, S, X, N, K
INPUT N
DIM SHARED A(N)
T = 1
DO
  A(T) = A(T) + 1: S = S + A(T)
  IF S >= N THEN
  IF S = N AND T > 1 THEN CALL WSY
  S = S - A(T): T = T - 1: S = S - A(T)
  ELSE T = T + 1: A(T) = 0
  END IF
LOOP UNTIL T = 0
PRINT "S="; X
END

SUB WSY
K = K + 1
PRINT K; ":"; N; "="; A(1);
FOR I = 2 TO T: PRINT "+"; A(I); : NEXT I: PRINT
X = X + 1
10 END SUB

7 楼

DECLARE SUB WHY ()
CLS
DIM SHARED T, S, X, N, K
INPUT N
DIM SHARED A(N)
T = 1
DO
  A(T) = A(T) + 1: S = S + A(T)
  IF S >= N THEN
  IF S = N AND T > 1 THEN CALL WHY
  S = S - A(T): T = T - 1: S = S - A(T)
  ELSE T = T + 1: A(T) = 0
  END IF
LOOP UNTIL T = 0
PRINT "S="; X
END

SUB WHY
K = K + 1
PRINT K; ":"; N; "="; A(1);
FOR I = 2 TO T: PRINT "+"; A(I); : NEXT I: PRINT
X = X + 1
10 END SUB

我来回复

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