Последовательность чисел называется симметричной, если она одинаково читается как слева направо, так и справа налево. Например, следующие последовательности являются симметричными:
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).
Python
Задача 8. Симметричная последовательность
Ответ нейросети.
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]}") # Выводим добавленные числа в обратном порядке
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]}") # Выводим добавленные числа в обратном порядке
Фарух Бобоев
спасибо
Фарух Бобоев
а вы можете помочь с еще одной задачей?
Дмитрий Шадрин
Могу
Дмитрий Шадрин
Вопрос задай отвечу
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])
# Вводим количество чисел в последовательности
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
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])
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])
Похожие вопросы
- Задача 8. Шифр Цезаря
- 4 задачи по темам:Массивы,Строки,Циклы,условный оператор
- Решение задачи по программированию (желательно питон) Сложность O(квадрат(n))
- Задана последовательность из N вещественных чисел. Определить, сколько среди них чисел меньших К, равных К и больших К.
- Вот про это задание про нахождение в массиве последовательностей из подряд стоящих чисел дающих сумму 3 (...)
- Как понять логику решения следующей задачи "ДЛЯ НАЧИНАЮЩИХ"?
- Не могу решать задачи на целочисленную арифметику в питоне.
- Информатика 8 класс/Задача на python
- нужно написать задачи на питоне
- Как научиться понимать и решать поставленные задачи в программирование?