C++ 代码实现:按首位数字排序正整数
#include
int first_digit(int x) { while (x >= 10) { x /= 10; } return x; }
bool cmp(int a, int b) { int fa = first_digit(a), fb = first_digit(b); if (fa != fb) { return fa < fb; } else { return a < b; } }
int main() { int n; cin >> n; int a[n]; for (int i = 0; i < n; i++) { cin >> a[i]; } sort(a, a + n, cmp); for (int i = 0; i < n; i++) { cout << a[i] << ' '; } return 0; }
原文地址: https://www.cveoy.top/t/topic/ov8d 著作权归作者所有。请勿转载和采集!