C++ 正整数序列排序:个位数优先,相同个位数按大小排序

本篇文章提供 C++ 代码实现,用于对给定的正整数序列进行排序。排序规则为:首先按照个位数从小到大排序,个位数相同的再按照本身大小从小到大排序。

输入格式

第一行1个整数 n, 表示序列的大小。( 0 < n ≤ 1000)
第二行 n 个正整数,表示序列的每个数,每个数不大于 100000000。

输出格式

输出按照题目要求排序后的序列

C++ 代码实现

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

// 比较函数,按照个位数从小到大排序,个位数相同的按照本身大小从小到大排序
bool compare(int a, int b) {
    if (a % 10 != b % 10) {
        return a % 10 < b % 10;
    } else {
        return a < b;
    }
}

int main() {
    int n;
    cin >> n;
    
    vector<int> nums(n);
    for (int i = 0; i < n; i++) {
        cin >> nums[i];
    }
    
    // 使用自定义的比较函数进行排序
    sort(nums.begin(), nums.end(), compare);
    
    // 输出排序后的序列
    for (int i = 0; i < n; i++) {
        cout << nums[i] << " ";
    }
    
    return 0;
}

代码解释

  1. 使用 compare 函数定义排序规则,先比较个位数,再比较本身大小。
  2. 使用 sort 函数对 nums 数组进行排序,并传入自定义比较函数 compare
  3. 输出排序后的序列。
C++ 正整数序列排序:个位数优先,相同个位数按大小排序

原文地址: https://www.cveoy.top/t/topic/qjKA 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录