«В»: Напишите программу, которая заполняет массив из N = 10 элементов случайными числами в диапазоне
[10,100] и сортирует его по возрастанию последней
цифры числа (сначала идут все числа, которые
заканчиваются на 0, потом все, которые
заканчиваются на 1, и т.д.).
Пример:
Массив: 12 10 31 40 55 63 28 87 52 92
Сортировка: 10 40 31 12 52 92 63 55 87 28.
Нужно сделать в Python.​


«В»: Напишите программу, которая заполняет массив из N = 10 элементов случайными числами в диапазоне

dendeniska228 dendeniska228    3   28.02.2021 14:03    153

Ответы
ногнео ногнео  19.01.2024 07:58
Хорошо, я рад помочь! Вот программный код на языке Python, который решает задачу:

```python
import random

# Функция для сортировки массива по последней цифре
def last_digit_sort(arr):
# Создаем словарь, в котором ключами являются последние цифры чисел
last_digit_dict = {}

# Заполняем словарь пустыми списками
for i in range(10):
last_digit_dict[i] = []

# Заполняем словарь числами из массива, в соответствующие списки
for num in arr:
last_digit = num % 10
last_digit_dict[last_digit].append(num)

# Создаем новый отсортированный массив
sorted_arr = []

# Обходим словарь и добавляем числа из списков в новый массив
for i in range(10):
sorted_arr.extend(last_digit_dict[i])

return sorted_arr

# Основная программа
N = 10
arr = []

# Заполняем массив случайными числами в диапазоне [10,100]
for i in range(N):
arr.append(random.randint(10, 100))

print("Массив:", arr)

# Сортируем массив по последней цифре
sorted_arr = last_digit_sort(arr)

print("Сортировка:", sorted_arr)
```

Объяснение решения:
1. Мы начинаем с импорта модуля random, который нужен для генерации случайных чисел.
2. Затем мы определяем функцию `last_digit_sort`, которая принимает массив чисел и возвращает отсортированный массив.
3. В функции `last_digit_sort` мы создаем словарь `last_digit_dict`, где ключами являются последние цифры чисел.
4. Затем мы заполняем словарь `last_digit_dict` пустыми списками, чтобы для каждой последней цифры был список для хранения чисел.
5. Мы проходим по массиву чисел, вычисляем последнюю цифру каждого числа и добавляем его в соответствующий список в словаре `last_digit_dict`.
6. Создаем новый отсортированный массив `sorted_arr`.
7. Мы обходим словарь `last_digit_dict` и добавляем числа из списков в новый массив, сохраняя порядок сортировки сначала по последней цифре 0, затем 1 и так далее.
8. В основной программе определяем переменную N, которая указывает количество элементов в массиве.
9. Создаем пустой массив `arr`, в который будем добавлять случайные числа.
10. Заполняем массив `arr` случайными числами в диапазоне [10, 100] с помощью цикла for и функции `random.randint`.
11. Выводим исходный массив `arr`.
12. Вызываем функцию `last_digit_sort` для сортировки массива по последней цифре.
13. Выводим отсортированный массив `sorted_arr`.

Ответ на задачу:
```
Массив: [12, 10, 31, 40, 55, 63, 28, 87, 52, 92]
Сортировка: [10, 40, 31, 12, 52, 92, 63, 55, 87, 28]
```
В данном примере массив из 10 элементов `[12, 10, 31, 40, 55, 63, 28, 87, 52, 92]` сортируется по последней цифре числа, в соответствии с правилом, указанным в задаче. Результатом является массив `[10, 40, 31, 12, 52, 92, 63, 55, 87, 28]`.
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика