主题:请MOZ大虾来帮忙做一下这题!!!
网虫一号
[专家分:1230] 发布于 2007-08-12 10:24:00
整数的拼接
【问题描述】
设有n个整数(3≤n≤10),将这些整数拼接起来,可以形成一个最大的整数。
例如 n=3, 三个整数分别为21, 7, 34, 拼接后最大的整数为: 73421
【输 入】:文件读入。第一行一个整数n ,表示有n 个整数
第二行n个整数,数与数之间用一个逗号分隔。
【输 出】:输出到屏幕 。一个拼接后的最大的整数。
【样 例】:输入 5
8,887,889,808,8008
输出 88988898088008
回复列表 (共3个回复)
沙发
Matodied [专家分:7560] 发布于 2007-08-12 12:49:00
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
板凳
QB小猪 [专家分:1200] 发布于 2007-08-14 07:55:00
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 楼
小精灵1号 [专家分:1040] 发布于 2007-08-14 08:03:00
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
我来回复