#include <iostream>
#include <string>
#include <vector>
#include <cmath>
#include <algorithm>
using namespace std;
int n, zui;
vector<vector<int> > a(10);
vector<int> nums;
int getnum(int need, int where) {
return (need / (int)pow(10, where)) % 10;
}
void cleara() {
for (int d9=0;d9<=9;d9++) a[d9].clear();
}
int main() {
cin >> n;
for (int d1=0;d1<n;d1++) {
int tmp;
cin >> tmp;
zui = max(zui, (int)(1 + log10(tmp))); // 最大位数
nums.push_back(tmp);
}
a.resize(n);
for (int d2=0;d2<zui;d2++) {
cleara();
for (int d5=0;d5<=n;d5++){
int num = nums[d5];
a[getnum(num, d2)].push_back(num);
}
nums.clear();
for (int d3=0;d3<=9;d3++) {
for (size_t d4=0;d4<a[d3].size();d4++) {
nums.push_back(a[d3][d4]);
}
}
}
for (int d6=1;d6<=n;d6++) {
cout << nums[d6] << " ";
}
return 0;
}
vector<vector<int> > a(10); 首先定义了一个二维数组(vector),此处的a(10)中的10为二维数组的行数;
getnum()函数为获取一个数字指定位数的函数