回 帖 发 新 帖 刷新版面

主题:这题怎么做(2)

给出n个正整数(n<=20,每个数不多于15位),现要求把这n个数组成一个数,使这个数位数最多,规则如下:
(1)组成的数必须以指定的数字作为最高位.
(2)两个数必须有首尾相接的部分,才能连在一起,首尾相接的部分合成一部分,如13476和7635连成1347635,但是不能存在包含的关系,如12678和78不能相连.
(3)每个数最多在连成的数中出现两次,最少出现一次.
输入:n(n<=20)
     n个正整数(每个数不多于15位)
     m(连成的数必须以m作为最高位,0<m<10)
输出:位数最多的数,和它的位数.
如:
输入:5(n)
     34
     47899
     92054
     987012
     4004
     3(m)
输出:3478992054004004789987012
     25(位数最多的数的位数)

回复列表 (共5个回复)

沙发

题目很无聊,没有现实意义,拒绝思考作答.

板凳

CLS
INPUT N
FOR I=1 TO N: INPUT “n个数”;A$(I):NEXT
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
NEXT
? "最大数”;
FOR I=1 TO N:? A$(I);:NEXT:END 

  
[em1][em1][em1]

3 楼

2楼,你的程序错了.
还有,moz,你竟然不帮我,还说这样的话![em21][em21][em21][em21][em21][em21][em21][em21][em21][em21][em21][em21][em21][em21][em21][em21][em21][em21][em21][em21][em21][em21][em21][em21][em21][em21][em21][em21][em21][em21][em21]

4 楼

既然要连得越长越好,干嘛要13476和7635连成1347635?
我当然用一个数字来实现首尾连接就行了.
我肯定得去找一个用6带头的数去了.
既然每个数可以用两次,我为啥要用一次?
只要实现找到首尾一个数字来实现筛选就可以了.

5 楼

同意

我来回复

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