文章
11
粉丝
223
获赞
14
访问
55.2k
自定义排序即可:
数字位数多的一定大于位数少的;
位数相同,从头到尾比较各个数字位、直到找到一个二者间更大的即可。
#include <string>
#include <algorithm>
#include <iostream>
using namespace std;
// 求大整数升序排序的结果
bool cmp(string a, string b)
{
if (a.size() == b.size())
{
for (int i = 0; i < a.size(); ++i)
{
if (a[i] == b[i])
continue;
return a[i] < b[i];
}
}
return a.size() < b.size();
}
int main()
{
string s[101];
int N;
while (cin >> 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] << endl;
}
return 0;
}
登录后发布评论