Напишите программу на C++, которая сортирует натуральные числа в массиве по убыванию суммы цифр десятичной записи
Напишите программу на C++, которая сортирует натуральные числа в массиве по убыванию суммы цифр десятичной записи числа. Если у двух чисел сумма цифр одинакова, то они должны быть отсортированы в том же порядке, в котором они находились в исходном массиве. Входные данные: первая строка содержит размер массива N. Во второй строке через пробел задаются N чисел - элементы массива. Гарантируется, что N > 0. Вывод: программа должна вывести в одной строке элементы массива, отсортированного в порядке убывания суммы цифр десятичной записи числа, разделяя их пробелами. Пример: Ввод: 6 9 21 32 55 81 11 Вывод: 55 9 81 32
07.12.2023 18:04
Описание: Чтобы решить эту задачу, мы должны сначала вычислить сумму цифр каждого числа в массиве, а затем отсортировать числа по убыванию суммы цифр.
Для решения используем следующий подход на языке программирования C++:
1. Считываем размер массива N из входных данных.
2. Создаем массив размером N и считываем элементы массива из входных данных.
3. Создаем вспомогательный вектор, в котором будем хранить суммы цифр для каждого числа исходного массива.
4. Вычисляем сумму цифр для каждого числа исходного массива с помощью цикла и добавляем полученные значения во вспомогательный вектор.
5. Используем алгоритм сортировки по убыванию для сортировки исходного массива и вспомогательного вектора одновременно.
6. Выводим отсортированные элементы исходного массива, разделяя их пробелами.
Дополнительный материал:
Входные данные:
6
9 21 32 55
Решение:
1. Создаем массив размером 6 и заполняем его элементами [9, 21, 32, 55].
2. Создаем вспомогательный вектор и заполняем его суммами цифр каждого числа в исходном массиве: [9, 3, 5, 10].
3. Сортируем массив и вектор по убыванию суммы цифр: [55, 32, 21, 9] и [10, 5, 3, 9].
4. Выводим отсортированные элементы массива: 55 32 21 9.
Совет: Чтобы вычислить сумму цифр числа, можно использовать цикл для суммирования остатков от деления числа на 10. Разделение задачи на подзадачи и использование вспомогательных структур данных поможет сделать программу более понятной и удобной для разработки.
Упражнение:
Напишите программу на C++, которая сортирует натуральные числа в массиве по возрастанию суммы цифр десятичной записи числа. Дано: N = 4, массив: [23, 10, 46, 5]. Что будет выведено на экран после сортировки?