Python

Задача 8. Симметричная последовательность

Последовательность чисел называется симметричной, если она одинаково читается как слева направо, так и справа налево. Например, следующие последовательности являются симметричными:

1 2 3 4 5 4 3 2 1
1 2 1 2 2 1 2 1
Пользователь вводит последовательность из N чисел. Напишите программу, которая определяет, какое минимальное количество и каких чисел надо приписать в конец этой последовательности, чтобы она стала симметричной.

Пример 1:

Кол-во чисел: 5
Число: 1
Число: 2
Число: 1
Число: 2
Число: 2

Последовательность: [1, 2, 1, 2, 2]
Нужно приписать чисел: 3
Сами числа: [1, 2, 1]
Пример 2:

Кол-во чисел: 5
Число: 1
Число: 2
Число: 3
Число: 4
Число: 5

Последовательность: [1, 2, 3, 4, 5]
Нужно приписать чисел: 4
Сами числа: [4, 3, 2, 1]
Что оценивается
Результат вычислений корректен.
Input содержит корректные приглашения для ввода.
Формат вывода соответствует примеру.
Переменные и функции имеют значащие имена, не только a, b, c, d (подробнее об этом в видео 2.3).
Ответ нейросети.
n = int(input("Кол-во чисел: "))
arr = []
for i in range(n):
arr.append(int(input("Число: ")))

# Проверяем, является ли последовательность уже симметричной
if arr == arr[::-1]:
print("Нужно приписать чисел: 0")
else:
copy_arr = arr.copy()
count = 0
while copy_arr != copy_arr[::-1]:
count += 1
copy_arr = arr.copy() # Создаем копию исходной последовательности
for i in range(count):
copy_arr.append(copy_arr[count-i-1]) # Добавляем число симметрично относительно середины последовательности
print(f"Нужно приписать чисел: {count}")
print(f"Сами числа: {copy_arr[-count:][::-1]}") # Выводим добавленные числа в обратном порядке
Дмитрий Шадрин
Дмитрий Шадрин
650
Лучший ответ
Фарух Бобоев а вы можете помочь с еще одной задачей?
Дмитрий Шадрин Вопрос задай отвечу
 n, counter = int(input('Кол-во чисел: ')), 0
numbers = [int(input('Число: ')) for _ in range(n)]
print('Последовательность:', numbers)
while counter < n - 1:
length = (n - counter) // 2
if numbers[counter : counter + length] == numbers[: n - length - 1 : -1]:
break
counter += 1
print('Нужно приписать чисел:', counter)
print('Сами числа:', numbers[: counter][: : -1])
Олег Дудчик
Олег Дудчик
60 029
 # Вводим количество чисел в последовательности 
N = int(input("Кол-во чисел: "))

# Создаем пустой список для хранения чисел
sequence = []

# Вводим числа по одному и добавляем их в список
for i in range(N):
num = int(input("Число: "))
sequence.append(num)

# Выводим последовательность на экран
print("Последовательность:", sequence)

# Создаем пустой список для хранения чисел, которые нужно приписать
appendix = []

# Инициализируем индекс для сравнения элементов с начала и с конца списка
index = 0

# Пока последовательность не станет симметричной, повторяем следующие шаги:
while sequence[index] != sequence[-index-1]:
# Добавляем элемент с конца списка в список appendix
appendix.append(sequence[-index-1])
# Увеличиваем индекс на 1
index += 1

# Выводим количество и числа, которые нужно приписать
print("Нужно приписать чисел:", len(appendix))
print("Сами числа:", appendix)
Фарух Бобоев А вы можете сделать соблюдая все условия задания? если не сложно
num_list = []
numbers = int(input('Кол-во чисел: '))
numbers_list = [int(input('Число: ')) for _ in range(numbers)]
print()
print('Последовательность:', numbers_list)

for i in range(numbers):
numbers_list.insert(numbers, numbers_list[i])
num_list.append(numbers_list[i])
if numbers_list == numbers_list[:: -1]:
print('Нужно приписать чисел:', i + 1)
print('Сами числа', num_list)
print('Симметричная последовательность:', numbers_list)
break
n = int(input('Кол-во чисел: '))
list_num = []
new_list = []

for i in range(n):
num = int(input('Число: '))
list_num.append(num)
print('Последовательность:', list_num)


while list_num != list_num[::-1]:
new_list.append(list_num[0])
list_num.remove(list_num[0])

print(f'Нужно приписать чисел: {len(new_list)} \nСами числа:', new_list[::-1])