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

та!(PYTHON) Напишите программу которая выполняет циклический сдвиг элементов массива вправо на r элементов.

Показать ответ
Ответ:
SASHA23103
SASHA23103
16.01.2021 09:23

К этому:

можно делать сдвиг как вправо, так и влево (на ввод отрицательное число)

Код:

def shift(lst, steps):

   if steps < 0:

       steps = abs(steps)

       for i in range(steps):

           lst.append(lst.pop(0))

   else:

       for i in range(steps):

           lst.insert(0, lst.pop())

   return lst

arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

shift_num = int(input("Введите сдвиг массива: "))

print(shift(arr, shift_num))

0,0(0 оценок)
Ответ:
Messi1444
Messi1444
16.01.2021 09:23

from array import*

# массив

arr = array('i', [0, 1, 2, 3, 4, 5])

# шаг сдвига

r = 3

# сдвиг

for j in range(len(arr)):

arr[j], arr[(j + r) % r] = arr[(j + r) % r], arr[j]

print(arr)

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота