文章

11

粉丝

223

获赞

14

访问

55.8k

头像
大整数看作字符串
P1412 华中科技大学机试题
发布于2022年6月12日 15:40
阅读数 5.3k

自定义排序即可:

数字位数多的一定大于位数少的;

位数相同,从头到尾比较各个数字位、直到找到一个二者间更大的即可。 

#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;
}

 

登录查看完整内容


登录后发布评论

1 条评论
snake VIP
2024年3月19日 18:48

yes

赞(0)