#include #include using namespace std;

int sumOfDigits(int num) { int sum = 0; while (num > 0) { sum += num % 10; num /= 10; } return sum; }

bool compare(int a, int b) { int sumA = sumOfDigits(a); int sumB = sumOfDigits(b); if (sumA == sumB) { return a < b; } return sumA > sumB; }

int main() { int n; cin >> n; int* arr = new int[n]; for (int i = 0; i < n; i++) { cin >> arr[i]; } sort(arr, arr + n, compare); for (int i = 0; i < n; i++) { cout << arr[i] << endl; } delete[] arr; return 0;

C++且不使用vector头文件完成并提前使用using namespace std;:描述可多宇宙中对于一个整数有特殊的排序方法它们会把这个整数的每一位相加相加的和越大排名越靠前。如果有两个整数各位相加之和一样那么原数字较小的排在前面。输入描述第一行是一个整数 n 0 n 100表示有多少个数;第二行有 n 个整数每个数在 0 到 10000 之间用空格隔开n 个整数互不相同。输出描述输出为

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

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