题解 | #大整数排序#

大整数排序

https://www.nowcoder.com/practice/b744af632ac4499aa485d7bb048bb0aa

#include <vector> 
#include <iostream>
#include <algorithm>
using namespace std;
const int maxn=1000;
struct BigInteger{
    int digit[maxn];
    int length;
    BigInteger(string x);
    bool operator< (BigInteger x) ;
};
BigInteger::BigInteger(string x){
    length=0;
    for(int i=x.length()-1;i>=0;i--){
        digit[length++]=x[i]-'0';
    }

}
bool BigInteger:: operator< (BigInteger x) {
    if(length<x.length) return true;
    else if(length>x.length) return false;
    else{
        int i=length-1;
        while(digit[i]==x.digit[i] && i>0){
            i--;
        }
        return digit[i]<x.digit[i];
    }

}
vector<BigInteger> v;
void init(){
    v.clear();
}
void outp(BigInteger x){
    for(int i=x.length-1;i>=0;i--){
        cout<<x.digit[i];
    }
    cout<<endl;
}
int main() {
    int n;
    while(cin>>n){
        init();
        for(int i=0;i<n;i++){
            string x;
            cin>>x;
            v.push_back(BigInteger(x));

        }
        sort(v.begin(), v.end());
        for(int i=0;i<v.size();i++){
            outp(v[i]);
        }
    }
}

全部评论

相关推荐

被普调的六边形战士很高大:项目经历貌似和专业或者求职方向没大关系?
点赞 评论 收藏
分享
头像
03-20 22:00
重庆大学 Java
适彼乐土:“他们不行再找你” 最后的底牌吗?有点意思
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务