作业帮 > 综合 > 作业

PASCAL问题 三、组数游戏

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/30 22:08:05
PASCAL问题 三、组数游戏
【问题描述:】
设有n个正整数,要求将他们连成一排,组成一个最大的多位数.
如1:n=3,3个整数 13 、312、343.连成最大的整数为:34331213
如2:n=4,4个整数7、13、4、246.连成最大的整数为:7424613
【输入:】
第一行:n(
要使组成的数最大,也就是把所有的数从最高位的依次比较来排序,最后输出就可以了
代码如下:
Var
n,i,j:longint;
num:array[0..1000] of string;
begin
readln(n);
for i:=1 to n do
 readln(num[i]);{读入}
for i:=1 to n-1 do
 for j:=i+1 to j do
 if num[i]
再问: 这个思路不对
再答: lz认为该怎么办?
再问: 把读入的数看作字符串,用选择排序,把大数放前面。但在比较大小交换的时候,需要注意先连接在比较大小(比如10 和1,直接比较的话,因为10比1的位数多,所以10大,但不应该把10放在前面,101比110要小,不是最大,但先连接在比较就可以比较‘10’+‘1’和‘1’+‘10’的大小做出正确的比较) 这个怎么样
再答: Var n,i,j:longint; num:array[0..1000] of string; begin readln(n); for i:=1 to n do readln(num[i]);{读入} for i:=1 to n-1 do for j:=i+1 to j do if num[i]+num[j]