描述
对N个长度最长可达到1000的数进行排序。
输入描述:
输入第一行为一个整数N,(1<=N<=100)。 接下来的N行每行有一个数,数的长度范围为1<=len<=1000。 每个数都是一个正数,并且保证不包含前缀零。
输出描述:
可能有多组测试数据,对于每组数据,将给出的N个数从小到大进行排序,输出排序后的结果,每个数占一行。
示例1
输入:
3 11111111111111111111111111111 2222222222222222222222222222222222 33333333
输出:
33333333 11111111111111111111111111111 2222222222222222222222222222222222
代码:
#include<iostream>
#include<algorithm>
using namespace std;
struct Dashu{ //定义大整数结构体
int length; //长度
string str; //大整数
};
bool cmp(Dashu a,Dashu b){ //排序规则
if(a.length==b.length){
return a.str<b.str;
}else{
return a.length<b.length;
}
}
int main(){
int n;
cin>>n;
Dashu da[n];
for(int i=0;i<n;i++){
cin>>da[i].str;
da[i].length=da[i].str.size();
}
sort(da,da+n,cmp); //排序
for(int i=0;i<n;i++){ //输出大整数
cout<<da[i].str<<endl;
}
return 0;
}