问题 D: 最大整数
时间限制: 1 Sec 内存限制: 128 MB提交: 14 解决: 10
[ 提交][ 状态][ 讨论版]
题目描述
设有n个正整数,将他们连接成一排,组成一个最大的多位整数。例如:n=3时,3 个整数13,312,343,连成的最大整数为:34331213 又如:n=4时,4个整数7,13,4,246连接成的最大整数为7424613
输入
N(N小于10) N个数
输出
连接成的多位数
样例输入
3
121 21 3
样例输出
321121
#include<iostream>
#include<string>
using namespace std;
int main()
{
int n,m,i,j,h,g,f;
while(cin>>n)
{
string a[n],k;
for(i=0;i<n;i++) {
cin>>a[i];
}
for(i=0;i<n-1;i++) {
for(j=i+1;j<n;j++) {
if((a[i]+a[j])>(a[j]+a[i])) {
k=a[i];
a[i]=a[j];
a[j]=k;
}
}
}
for(i=n-1;i>=0;i--) {
cout<<a[i];
}
cout<<endl;
}
return 0;
}
这个整体思想还是贪心算法,将字符串通过整数形式进行比较大小,其实大概思路很简单,重点就在对大小的判断是将字符串转化成整数型。