题目描述 设有n个正整数(n ≤ 20),将它们联接成一排,组成一个最大的多位整数。 例如:n=3时,3个整数13,312,343联接成的最大整数为:34331213 又如:n=4时,4个整数7,13,4,246联接成的最大整数为:7424613
首先想到用string存储n个整数,题目要求使这些整数连接成最大的整数,就用sort函数再定义一个cmp函数来使最大的连接数返回即可 代码如下:
#include<algorithm>
using namespace std;
string q[21];
bool cmp(const string &a,const string &b)//它通过比较两个字符串连接的结果,确定它们在排序时的相对顺序,确保连接后的字符串是最大的。
{
return a+b>b+a;
}
int main()
{
int n;
cin>>n;
for(int i=0;i<n;i++) cin>>q[i];
sort(q,q+n,cmp);
for(int i=0;i<n;i++)cout<<q[i];
return 0;
}