ДАЮ 100 БАЛЛОВ!!!!ПРОГРАММИСТЫ ИЛИ ПРОСТО ТЕ КТО ШАРИТ В ИНФЕ ПОМОГИТЕ ПОЖАЛУЙСТА. Питон
Задание No1
Дана программа, которая сортирует числа по возрастанию последней цифры.
from random import randint
N = int(input('введите количество элементов массива')) a = []
for i in range(N):
a.append(randint(0, 100))
print(a)
for j in range(N):
for i in range(0, N-j-1):
if a[i + 1] % 10 < a[i] % 10:
a[i], a[i + 1] = a[i + 1], a[i]
print(a)
В результате сортировки получился такой массив: введите количество элементов массива 10
[36, 36, 50, 83, 70, 3, 8, 95, 68, 59] несортированный массив
[50, 70, 83, 3, 95, 36, 36, 8, 68, 59] сортированный массив
Доработайте так программу, чтобы элементы, которые оканчиваются на одинаковую цифру выстроились по возрастанию. Окончательный вид массива должен быть такой:
[50, 70, 3, 83, 95, 36, 36, 8, 68, 59]
Задание No2
Напишите программу, которая формирует массив случайных чисел. Распечатывает получившийся массив, а затем производит циклический сдвиг массива на один элемент вправо. Значение
Answers & Comments
Ответ:
№1.
# меняется только цикл
for j in range(N):
for i in range(0, N-j-1):
if a[i + 1] % 10 < a[i] % 10:
a[i], a[i + 1] = a[i + 1], a[i]
elif a[i + 1] % 10 == a[i] % 10 and a[i + 1] < a[i]:
a[i], a[i + 1] = a[i + 1], a[i]
№2.
from random import randint
n = int(input('Введите количество элементов массива: '))
a = []
for _ in range(n):
a.append(randint(0, 100))
print(a)
result = []
for i in range(n-1, -1, -1):
if i + 1 == n:
result.append(a[i])
else:
result.append(a[n-i-2])
print(result)
Объяснение:
№1. Сортируем каждую пару чисел с одинаковой последней цифрой по отдельности.
№2. Цикл проходит элементы массива с конца (с (n-1)-го элемента по 0-ой). Сначала последний элемент переносится в начало, затем добавляются остальные элементы