Sort sum of digit

mail@pastecode.io avatar
unknown
c_cpp
10 months ago
580 B
16
Indexable
Never
#include <bits/stdc++.h>
#include <cstring>
#define f first
#define s second
#define ll long long

using namespace std;

int digitSum(int x) {
    if (x < 10) {
        return x;
    } else {
        return digitSum(x / 10) + x % 10;
    }
}

bool cmp(int x, int y) {
    return (digitSum(x) > digitSum(y) || digitSum(x) == digitSum(y) && x < y);
}

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;
}






Leave a Comment