比如:
输入 321 32 6
输出 632321
#include<c++/4.8.2/iostream>
#include<c++/4.8.2/vector>
#include<c++/4.8.2/string>
#include<c++/4.8.2/algorithm>
using namespace std;
bool com(string a,string b)//自定义比较函数
{
string str1=a+b;
string str2=b+a;
return str1>str2?true:false;
}
void largestNum(vector<int> a)
{
if(a.empty())
return;
//最后可能输出的数字过大,所以用字符串的方式处理
vector<string> str;
for(int i=0;i<a.size();i++)//先将数组元素转成string类型
{
str.push_back(to_string(a[i]));
}
sort(str.begin(),str.end(),com);//通过自定义比较函数,排序成从大到小
for(int i=0;i<str.size();i++)
{
cout<<str[i];
}
cout<<endl;
}
int main()
{
vector<int> a;
int n;
while(cin>>n)
{
a.push_back(n);
}
largestNum(a);
return 0;
}