设有n个正整数(n≤20),将它们联接成一排,组成一个最大的多位整数。

设有n个正整数(n≤20),将它们联接成一排,组成一个最大的多位整数。例如:n=3时,3个整数13,312,343联接成的最大整数为:34331213又如:n=4时,4个... 设有n个正整数(n≤20),将它们联接成一排,组成一个最大的多位整数。
例如:n=3时,3个整数13,312,343联接成的最大整数为:34331213
又如:n=4时,4个整数7,13,4,246联接成的最大整数为:7424613
Sample Input
3
13 312 343
4
7 13 4 246
3
321 32 3
3
324 32 3
Sample Output
34331213
7424613
332321
332432
展开
 我来答
当代教育科技知识库
高能答主

2019-08-16 · 擅长科技新能源相关技术,且研究历史文化。
当代教育科技知识库
采纳数:1828 获赞数:387346

向TA提问 私信TA
展开全部

程序如下:

var n,i,j,k,min:longint;

a:array[0..100]of string;

ch1:char;

st1,now1,now2,st:string;

begin

readln(n);

for i:=1 to n do

begin

readln(st);

a[i]:=st;

end;

for i:=1 to n-1 do

for j:=i+1 to n do

begin

now1:=a[j];now2:=a[i];

if length(a[j])>length(a[i]) then min:=length(a[i]) else min:=length(a[j]);

for k:=1 to min do

if now1[k]>now2[k] then

begin

st1:=a[j];a[j]:=a[i];a[i]:=st1;

break;

end;

end;

for i:=1 to n do

write(a[i]);

writeln;

end

扩展资料:

利用皮亚诺公理可以对正整数及N*进行如下描述:

任何一个满足下列条件的非空集合叫做正整数集合,记作N*。如果

Ⅰ 1是正整数;

Ⅱ 每一个确定的正整数a,都有一个确定的后继数a' ,a'也是正整数(数a的后继数a‘就是紧接在这个数后面的整数(a+1)。例如,1‘=2,2’=3等等。);

Ⅲ 如果b、c都是正整数a的后继数,那么b = c;

Ⅳ 1不是任何正整数的后继数;

Ⅴ 设S⊆N*,且满足2个条件(i)1∈S;(ii)如果n∈S,那么n'∈S。那么S是全体正整数的集合,即S=N*。(这条公理也叫归纳公理,保证了数学归纳法的正确性)

皮亚诺公理对N*进行了刻画和约定,由它们可以推出关于正整数的各种性质。

参考资料来源:百度百科-多位整数

参考资料来源:百度百科-正整数

百度网友1fc36d4
推荐于2016-12-01 · TA获得超过3128个赞
知道大有可为答主
回答量:1497
采纳率:100%
帮助的人:1815万
展开全部
以前做过,直接上代码了

#include <stdio.h>
int CompareInt(int a,int b)
{
int a1=a,b1=b,la=10,lb=10;
while(a/la)
{
la*=10;
}
while(b/lb)
{
lb*=10;
}
return (a*lb+b)-(b*la+a);
}
int main()
{
int i,j,n;
int data[20],temp;
while(1)
{
scanf("%d",&n);
if(n<=0||n>20) break;
for(i=0;i<n;i++)
{
scanf("%d",&data[i]);
}
for(j=0;j<n-1;j++)
for(i=0;i<n-1-j;i++)
{
if(CompareInt(data[i],data[i+1])<0)
{
temp=data[i+1];
data[i+1]=data[i];
data[i]=temp;
}
}
for(i=0;i<n;i++)
{
printf("%d",data[i]);
}
printf("\n");
}
return 0;
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友03f1279
2012-08-21 · 超过14用户采纳过TA的回答
知道答主
回答量:84
采纳率:0%
帮助的人:49.7万
展开全部
找出最大的那个数,与剩下的数字的找出最大的那个数的结果递归。
找出最大的那个数:从高位到地位,如果第一位相同,则看第二位;如果某一位一个数字没有而另一个数字有,则有的数字的这一位与没有这位的数字的上一位相比较。
不明白的话可以给你代码。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xiang000711
2012-08-21 · TA获得超过449个赞
知道小有建树答主
回答量:377
采纳率:0%
帮助的人:277万
展开全部
你给的题目不全,写不了代码,讲下思路吧
最后结果有可能很长,超出计算机能表示的数字长度,所以转化成字符串表示比较保险,且字符串比较大小适用于这个题目
字符串比较大小规则:从左往右比较相同位的ascii2码,得到不同值结束,ascii2码高的字符串大。输出结果用字符串输出就行
1.获取n个正整数
2.用itoa()函数将其转化成字符串,存于字符串数组中
3.用冒泡排序比较字符串数组由大到小排列
4.把字符串数组的内容从头到尾转移到一个字符串中
5.输出字符串
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
板沛凝3W
2012-08-21 · 超过12用户采纳过TA的回答
知道答主
回答量:51
采纳率:0%
帮助的人:35.3万
展开全部
比较每个整数 的最高位,大的放前面;如果相等就再比较下一位,大的放前;一次下去
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式