题目描述
设有n个正整数,将他们连接成一排,组成一个最大的多位整数。
如:n=3时,3个整数13,312,343,连成的最大整数为34331213。
如:n=4时,4个整数7,13,4,246连接成的最大整数为7424613。
如:n=3时,3个整数13,312,343,连成的最大整数为34331213。
如:n=4时,4个整数7,13,4,246连接成的最大整数为7424613。
输入描述:
有多组测试样例,每组测试样例包含两行,第一行为一个整数N(N<=100),第二行包含N个数(每个数不超过1000,空格分开)。
输出描述:
每组数据输出一个表示最大的整数。
示例1
输入
2 12 123 4 7 13 4 246
输出
12312 7424613
1 #include<iostream> 2 #include<vector> 3 #include<string> 4 #include<algorithm> 5 #include<sstream> 6 using namespace std; 7 8 bool cmp(string str1, string str2) 9 { 10 string str = str1 + str2; 11 string sss = str2 + str1; 12 return str > sss; 13 } 14 int main() 15 { 16 int N; 17 while (cin>>N) 18 { 19 vector<int> vet(N, 0); 20 vector<string> str; 21 for (int i = 0; i < N; i++) 22 { 23 cin >> vet[i]; 24 str.push_back(to_string(vet[i])); 25 } 26 sort(str.begin(), str.end(), cmp); 27 string str1=""; 28 for (int i = 0; i < N; i++) 29 { 30 str1+=str[i]; 31 } 32 //int num; 33 //stringstream ss(str1); 34 //ss >> num; 35 cout << str1<< endl; 36 37 } 38 system("pause"); 39 return 0; 40 }