zoukankan      html  css  js  c++  java
  • 大整数排序

    题目描述

    对N个长度最长可达到1000的数进行排序。

    输入描述:

    输入第一行为一个整数N,(1<=N<=100)。
    接下来的N行每行有一个数,数的长度范围为1<=len<=1000。
    每个数都是一个正数,并且保证不包含前缀零。

    输出描述:

    可能有多组测试数据,对于每组数据,将给出的N个数从小到大进行排序,输出排序后的结果,每个数占一行。

    分析

    1. 位数不相等时,位数少的小
    2. 位数相等时,字符串排序结果和数的排序结果相同
    #include <iostream>
    #include <string>
    #include <algorithm>
    using namespace std;
    
    bool comp(string a,string b)
    {
        if(a.size() == b.size()){
            return a < b;
        }
        else return a.size() < b.size();
    }
    
    int main(){
        int n;
        string s[100];
        while(cin >> n){
            for(int i = 0; i < n; i++){
                cin >> s[i];
            }
            sort(s, s + n, comp);
            for(int i = 0; i < n; i++){
                cout << s[i] << endl;
            }
        }
        return 0;
    }
    
  • 相关阅读:
    C++疑难杂症
    程序中的错误、异常处理框架设计
    客户端ARPG角色行为模型
    http协议
    MySQL数据库开发(2)
    MySQL数据库开发(1)
    网络编程进阶及并发编程
    网络编程-SOCKET开发
    面向对象编程
    常用模块
  • 原文地址:https://www.cnblogs.com/zhuobo/p/10249713.html
Copyright © 2011-2022 走看看