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

nazyrovailnara nazyrovailnara    1   17.12.2020 09:21    4

Ответы
Tricjt Tricjt  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))

ПОКАЗАТЬ ОТВЕТЫ
Roni13372155 Roni13372155  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)

ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика