Top.Mail.Ru
Ответы
Аватар пользователя
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+2

Помогите решить задачу пожалуйста

Задача 8. Бегущие цифры

Вы пишете программу для маленького табло, в котором циклически повторяется один и тот же текст или числа — прямо как в каком-нибудь метро, автобусах или трамваях.

Дан список из N элементов и целое число K. Напишите программу, которая циклически сдвигает элементы списка вправо на K позиций. Используйте минимально возможное количество операций присваивания.

Пример 1:

Сдвиг: 1
Изначальный список: [1, 2, 3, 4, 5]
Сдвинутый список: [5, 1, 2, 3, 4]

Пример 2:

Сдвиг: 3
Изначальный список: [1, 4, -3, 0, 10]
Сдвинутый список: [-3, 0, 10, 1, 4]

По дате
По рейтингу
Аватар пользователя
Знаток

shift = int(input('Сдвиг:'))
my_list = []
new_list = []
n = int(input('Kол-во элементов списка: '))
for i in range(n):
my_list.append(int(input('Введите элемент: ')))

elem = len(my_list) - shift

for _ in range(elem, n):
new_list.append(my_list[_])
for _ in range(0, elem):
new_list.append((my_list[_]))
print('Изначальный список: ', my_list)
print('Сдвинутый список: ', new_list)

Аватар пользователя
Ученик

Вот что конкретно требуется

def get_input_parameters():
shift = abs(int(input('Сдвиг: ')))
original_list = []
length = int(input('Задайте количество элементов изначального списка:'))
for i in range(length):
print('Введите значение', i + 1, 'элемента', end=' ')
original_list.append(int(input()))
return shift, original_list


def display_result(shifted_list):
print('Сдвиг:', shift)
print('Изначальный список:', original_list)
print('\nСдвинутый список:', shifted_list)


def shift_list(shift, original_list):
shifted_list = []
for i in range(len(original_list)):
shifted_list.append(original_list[i - shift])
return shifted_list


if __name__ == '__main__':
# Это условие необходимо, чтобы в рамках автотестов не произошёл
# вызов функций get_input_parameters и display_result
input_data = get_input_parameters() # получаем параметры
shift = input_data[0]
original_list = input_data[1]
shifted_list = shift_list(shift, original_list) # сдвигаем список.
display_result(shifted_list) # выводим результат

Аватар пользователя
Ученик

list = [1, 4, -3, 0, 10]
shift = int(input('Сдвиг: '))

list_with_shift = list[-shift:] + list[:-shift]

print(f'Изначальный список: {list}')
print(f'Сдвинутый список: {list_with_shift}')

---------------------
Ловите =)

Аватар пользователя
Ученик

original_list = []
amount = int(input('Введите кол-во символов в списке: '))
for _ in range(amount):
value = int(input('Введите число: '))
original_list.append(value)
shift = int(input('Введите необходимый сдвиг: '))

new_list = []
for number in range(len(original_list)):
new_list.append(original_list[number - shift])

print(new_list)

Аватар пользователя
Ученик

amount_element = int(input("Кол-во элементов: "))
list_element = []

for _ in range(amount_element):
''''''element = input("Введите элемент списка: ")
''''''list_element.append(element)
shift = int(input("Сдвиг: "))


print()
print(list_element)
for _ in range(shift):
''''''new_list_element = []
''''''new_list_element.append(list_element[amount_element-1])
''''''for index in range(amount_element-1):
''''''''''''new_list_element.append(list_element[index])
''''''list_element = new_list_element
''''''print(list_element)