Напишите программу, которая сортирует элементы массива по возрастанию последней цифры десятичной записи...

Тематика Информатика
Уровень 10 - 11 классы
сортировка массива последняя цифра алгоритмы программирование массив сортировка по ключу числовой массив Python C++ Java
0

Напишите программу, которая сортирует элементы массива по возрастанию последней цифры десятичной записи чисел.

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

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

Примеры входные данные 6 219 234 890 81 73 96 выходные данные 890 81 73 234 96 219

avatar
задан месяц назад

3 Ответа

0

Программа:

include

include

include

bool compare(int a, int b) {

return a % 10 < b % 10;

}

int main() {

int N;
std::cin >> N;

std::vector arr(N);
for (int i = 0; i < N; ++i) {
    std::cin >> arr[i];
}

std::stable_sort(arr.begin(), arr.end(), compare);

for (int i = 0; i < N; ++i) {
    std::cout 

avatar
ответил месяц назад
0

Для решения данной задачи можно использовать язык программирования Python. Вот пример программы:

N = int(input())
arr = list(map(int, input().split()))

def last_digit(num):
    return num % 10

arr.sort(key=last_digit)

for num in arr:
    print(num, end=' ')

При вводе примера данных (6 и чисел 219 234 890 81 73 96), программа выведет отсортированный массив в порядке возрастания последней цифры: 890 81 73 234 96 219.

avatar
ответил месяц назад
0

Для решения данной задачи можно использовать встроенные возможности языка Python для сортировки с помощью функции sorted() и параметра key, который позволяет задать критерий сортировки. В данном случае критерием будет последняя цифра числа. Кроме того, мы должны сохранить порядок следования чисел с одинаковыми последними цифрами, что также поддерживается функцией sorted(), так как она является устойчивой.

Вот пример программы, которая решает данную задачу:

def sort_by_last_digit(n, numbers):
    # Преобразуем строку чисел в список целых чисел
    numbers = list(map(int, numbers.split()))

    # Сортируем числа по последней цифре, используя lambda-функцию
    sorted_numbers = sorted(numbers, key=lambda x: x % 10)

    # Преобразуем отсортированный список чисел обратно в строку
    result = ' '.join(map(str, sorted_numbers))

    # Возвращаем результат
    return result

# Чтение входных данных
n = int(input().strip())  # Читаем размер массива, но он нам не понадобится
numbers = input().strip()  # Читаем числа в виде строки

# Получаем отсортированный массив и выводим его
output = sort_by_last_digit(n, numbers)
print(output)

Пояснение:

  1. Ввод данных: Сначала читаем размер массива n, но он нам не нужен, так как Python предоставляет возможность работать со списками без необходимости заранее задавать их размер. Затем читаем строку с числами и преобразуем её в список целых чисел с помощью map(int, .).

  2. Сортировка: Используем функцию sorted() с параметром key=lambda x: x % 10, чтобы сортировать числа по последней цифре. Оператор % 10 позволяет получить последнюю цифру числа.

  3. Вывод результата: Преобразуем отсортированный список обратно в строку с помощью map(str, .) и join(), после чего выводим результат.

Данная программа эффективно решает задачу сортировки и работает в пределах ограничения на количество элементов массива.

avatar
ответил месяц назад

Ваш ответ

Вопросы по теме