
Вопрос задан 17.01.2025 в 19:23.
Предмет Информатика.
Спрашивает Семилетова Дарья.
Напишите программу, которая сортирует элементы массива по возрастанию последней цифры десятичной записи чисел.
Входные данные
Первая строка содержит размер массива N . Во второй строке через пробел задаются N чисел – элементы массива. Гарантируется, что 0 < N ≤ 10000 .
Выходные данные
Программа должна вывести в одной строке элементы массива, отсортированного в порядке возрастания последней цифры в десятичной записи чисел, разделив их пробелами. Числа, у которых последняя цифра одинаковая, должны быть выведены в том же порядке, в котором они стояли в исходной последовательности.
Примеры
входные данные
6
219 234 890 81 73 96
выходные данные
890 81 73 234 96 219
Ответы на вопрос

Отвечает Большакова Лера.
Для решения задачи требуется отсортировать массив чисел по возрастанию их последних цифр. Поскольку необходимо сохранять порядок для чисел с одинаковыми последними цифрами, удобно использовать метод сортировки, который сохраняет порядок элементов при равных ключах. Это называется "устойчивая сортировка".
Шаги решения задачи
- Считать входные данные: Мы считываем число — размер массива, и затем сам массив чисел.
- Определить критерий сортировки: Поскольку мы сортируем по последней цифре, для каждого числа будем использовать остаток от деления на 10.
- Сортировка с использованием лямбда-функции: Встроенная функция
sorted()
позволяет задать ключ сортировки. В нашем случае ключом будет последняя цифра каждого числа. - Вывод результата: После сортировки выводим массив чисел в одной строке через пробелы.
Реализация программы
На Python решение может выглядеть следующим образом:
Пояснение кода
Считывание данных:
n = int(input().strip())
— считываем и преобразуем первую строку к целому числу .array = list(map(int, input().strip().split()))
— считываем вторую строку, разбиваем её на отдельные числа и преобразуем их к целому типу, чтобы сохранить в виде списка.
Сортировка:
sorted_array = sorted(array, key=lambda x: x % 10)
— используем функциюsorted()
, задавая ключ сортировкиkey=lambda x: x % 10
, который возвращает последнюю цифру числа.sorted()
по умолчанию устойчива, поэтому порядок элементов с одинаковыми ключами сохраняется.
Вывод результата:
print(" ".join(map(str, sorted_array)))
— преобразуем числа из спискаsorted_array
к строкам и объединяем их через пробел для вывода.
Пример работы программы
Рассмотрим входные данные из примера:
Входные данные:
Пошаговое выполнение:
Определим последние цифры каждого числа:
- 219 → 9
- 234 → 4
- 890 → 0
- 81 → 1
- 73 → 3
- 96 → 6
Сортируем по возрастанию последних цифр:
- Числа в порядке возрастания последних цифр: 890, 81, 73, 234, 96, 219
Вывод:
Вывод
Таким образом, программа выводит числа в требуемом порядке.
Похожие вопросы









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









Последние заданные вопросы в категории Информатика
Предметы
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili