题意:给出n个数字,然后组合,使其组合而成的数字为最大
思路:用sort排序,重点是cmp函数,相当与两个字符串组合,比较组合而成后的大小
#include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #define N 55 using namespace std; string s[N]; int cmp(const string & a, const string & b) { return (a + b) > (b + a); } int main() { int n; while (cin >> n && n) { for (int i = 0; i < n; i++) cin >> s[i]; sort(s, s + n, cmp); for (int i = 0; i < n; i++) cout << s[i]; cout << endl; } return 0; }