Вопрос задан 07.07.2023 в 01:16. Предмет Информатика. Спрашивает Чистякова Елизавета.

Интепритировать из Python 3 в c++ Помогите пожалуйста 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() Вот условия задачи Сортировка по сумме цифр Напишите программу, которая сортирует натуральные числа в массиве по убыванию суммы цифр десятичной записи числа. При равенстве сумм цифр числа должны сохранить исходный порядок. Входные данные Первая строка содержит размер массива N. Во второй строке через пробел задаются N чисел — элементы массива. Гарантируется, что 0  Выходные данные Программа должна вывести в одной строке элементы массива, отсортированного в порядке убывания суммы цифр десятичной записи числа, разделив их пробелами. Примеры Ввод 6 9 21 32 55 81 11 Вывод 55 9 81 32 21 11
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Рыженкова Ксюша.

Ответ в прикрепленном файле


0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Конечно, вот эквивалент кода на C++, который реализует сортировку по сумме цифр:

cpp
#include <iostream> #include <vector> #include <algorithm> int getDigitSum(int num) { int sum = 0; while (num > 0) { sum += num % 10; num /= 10; } return sum; } bool compareByDigitSum(const std::string &a, const std::string &b) { int sumA = 0, sumB = 0; for (char c : a) { sumA += c - '0'; } for (char c : b) { sumB += c - '0'; } return sumA > sumB; } int main() { int n; std::cin >> n; std::vector<std::string> a(n); for (int i = 0; i < n; ++i) { std::cin >> a[i]; } std::sort(a.begin(), a.end(), compareByDigitSum); for (const std::string &num : a) { std::cout << num << " "; } return 0; }

Обратите внимание, что в C++ коде мы используем функцию getDigitSum для вычисления суммы цифр числа. Функция compareByDigitSum выполняет сравнение строк на основе суммы цифр. В остальном, код аналогичен вашему и реализует сортировку по убыванию суммы цифр десятичной записи числа, сохраняя исходный порядок при равных суммах.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос