大数排序

xiaoxiao2021-03-01  19

题号: 10094 时限:1000ms 限制内存:32768KB 题目: 大整数排序 描述 对N个长度最长可达到1000的数进行排序。 输入格式 输入第一行为一个整数N,(1<=N<=100)。 接下来的N行每行有一个数,数的长度范围为1<=len<=1000。 保证每个数都是一个正数。 输出格式 将给出的N个数从小到大进行排序,输出排序后的结果,每个数之间用空格隔开。 输入样例 3 11111111111111111111111111111 2222222222222222222222222222222222 33333333 输出样例 33333333 11111111111111111111111111111 2222222222222222222222222222222222 题目来源 #include <iostream> #include <string> #include <algorithm> using namespace std; bool cmp(string s1,string s2) { if(s1.length()>s2.length()) return false; else if(s1.length()<s2.length()) return true; else if(s1.length()==s2.length()){ for(int i=0;i<s1.length();i++){ if(s1[i]>s2[i]) return false; else if(s1[i]<s2[i]) return true; } } } int main(){ int n,i; string num[100]; while(cin>>n){ for(i=0;i<n;i++) cin>>num[i]; sort(num,num+n,cmp); for(i=0;i<n-1;i++) cout<<num[i]<<" "; cout<<num[i]<<endl; } return 0; }
转载请注明原文地址: https://www.6miu.com/read-3650217.html

最新回复(0)