回 帖 发 新 帖 刷新版面

主题:请MOZ大虾来帮忙做一下这题!!!

整数的拼接
【问题描述】
 设有n个整数(3≤n≤10),将这些整数拼接起来,可以形成一个最大的整数。
例如  n=3, 三个整数分别为21, 7, 34, 拼接后最大的整数为: 73421
【输 入】:文件读入。第一行一个整数n ,表示有n 个整数
                     第二行n个整数,数与数之间用一个逗号分隔。
【输 出】:输出到屏幕 。一个拼接后的最大的整数。
【样 例】:输入 5
                 8,887,889,808,8008
            输出 88988898088008

回复列表 (共3个回复)

沙发

OPEN "in.txt" FOR INPUT AS #1
CLS
INPUT #1, n
DIM a$(n)
FOR i = 1 TO n
    INPUT #1, a$(i)
NEXT i
FOR i = 1 TO n - 1
    FOR j = i + 1 TO n
        IF a$(i) + a$(j) < a$(j) + a$(i) THEN SWAP a$(i), a$(j)
NEXT j, i
FOR i = 1 TO n: PRINT a$(i); : NEXT i: CLOSE: END

板凳

CLS
OPEN "F:\T4\JS40.IN" FOR INPUT AS #1
INPUT #1, N:  DIM A$(N)
FOR I = 1 TO N: INPUT #1, A$(I):  NEXT I
FOR I = 1 TO N - 1: FOR J = I + 1 TO N
IF A$(I) < A$(J) THEN SWAP A$(I), A$(J)
IF MID$(A$(I), 1, LEN(A$(J))) = A$(J) THEN
FOR K = 1 TO LEN(A$(I)) STEP LEN(A$(J))
IF MID$(A$(I), K, LEN(A$(J))) > A$(J) THEN EXIT FOR
IF MID$(A$(I), K, LEN(A$(J))) < A$(J) THEN SWAP A$(I), A$(J): EXIT FOR
NEXT K
END IF
NEXT J, I
FOR I = 1 TO N: PRINT A$(I); : NEXT I
END
楼上的,你的程序是错的,你把问题想的太简单了!!!


3 楼

CLS
INPUT N
DIM A$(N)
FOR I = 1 TO N: INPUT A$(I):  NEXT I
FOR I = 1 TO N - 1: FOR J = I + 1 TO N
IF A$(I) < A$(J) THEN SWAP A$(I), A$(J)
IF MID$(A$(I), 1, LEN(A$(J))) = A$(J) THEN
FOR K = 1 TO LEN(A$(I)) STEP LEN(A$(J))
IF MID$(A$(I), K, LEN(A$(J))) > A$(J) THEN EXIT FOR
IF MID$(A$(I), K, LEN(A$(J))) < A$(J) THEN SWAP A$(I), A$(J): EXIT FOR
NEXT K
END IF
NEXT J, I
FOR I = 1 TO N: PRINT A$(I); : NEXT I
END

我来回复

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