Предмет: Информатика, автор: chebudelphin

СРОЧНО!!!ПОМОГИТЕ!!!СИРИУС!!!С++
Сортировка по сумме цифр
Напишите программу, которая сортирует натуральные числа в массиве по убыванию суммы цифр десятичной записи числа. При равенстве сумм цифр числа должны сохранить исходный порядок.

Входные данные

Первая строка содержит размер массива N. Во второй строке через пробел задаются N чисел — элементы массива. Гарантируется, что 0
Выходные данные

Программа должна вывести в одной строке элементы массива, отсортированного в порядке убывания суммы цифр десятичной записи числа, разделив их пробелами.

Примеры
Ввод
Вывод
6
9 21 32 55 81 11
55 9 81 32 21 11


jenea9833: пайтон

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()

Ответы

Автор ответа: jenea9833
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;

}

Похожие вопросы
Предмет: Математика, автор: shundeva11