Предмет: Информатика,
автор: chebudelphin
СРОЧНО!!!ПОМОГИТЕ!!!СИРИУС!!!С++
Сортировка по сумме цифр
Напишите программу, которая сортирует натуральные числа в массиве по убыванию суммы цифр десятичной записи числа. При равенстве сумм цифр числа должны сохранить исходный порядок.
Входные данные
Первая строка содержит размер массива N. Во второй строке через пробел задаются N чисел — элементы массива. Гарантируется, что 0
Выходные данные
Программа должна вывести в одной строке элементы массива, отсортированного в порядке убывания суммы цифр десятичной записи числа, разделив их пробелами.
Примеры
Ввод
Вывод
6
9 21 32 55 81 11
55 9 81 32 21 11
Ответы
Автор ответа:
0
Ответ:
ввод/вывод тест прошел, результат положительный
Объяснение:
#include <iostream>
#include <algorithm>
using namespace std;
int sum(int a)
{
int tmp=0;
while (a!=0)
{
tmp += a % 10;
a /= 10;
}
return tmp;
}
int main(void)
{
size_t size; cin >> size;
int* arr = new int[size];
for (size_t i = 0; i < size; ++i){cin >> arr[i];}
sort(arr, arr + size, [](int& a, int& b)
{
return sum(a) > sum(b);
});
for (size_t i = 0; i < size; ++i) { cout<<arr[i]<<" "; }
delete[] arr;
arr = nullptr;
return EXIT_SUCCESS;
}
Похожие вопросы
Предмет: Английский язык,
автор: zulkarnieieva85
Предмет: Английский язык,
автор: рпрт1
Предмет: Русский язык,
автор: Triniti11
Предмет: Физика,
автор: krasnovairinka
Предмет: Математика,
автор: shundeva11
def main():
n = int(input())
a = input().split(maxsplit=n)
a.sort(key=lambda x: sum(map(int, x)), reverse=True)
print(*a)
if __name__ == "__main__":
main()