@Kapasim988

Как решить задачу на симметричную пару в массиве на python?

# Дан массив, содержащий 1000 положительных целых чисел.
# Симметричной парой называются два элемента, которые находятся на равном расстоянии от концов массива.
# Например, 1-й и 1000-й элементы, 2-й и 999-й и т. д. Порядок элементов в симметричной паре не учитывается:
# элементы на 1 и 2014 местах – это та же самая пара, что и элементы на 2014 и 1 местах.
# Напишите на одном из языков программирования программу, которая подсчитывает в массиве количество симметричных пар,
# у которых сумма элементов больше 20. Программа должна вывести одно число – количество отобранных симметричных пар.
# допускается также
# использовать две
# целочисленные переменные j и k
a = []
n = 6
for i in range(0, n):
a.append(int(input()))
k = 0
j = n
for i in range(0, n//2):
if a[i]+a[j] > 20:
k = k+1
j = j-1
print(k)

Помогите найти ошибку, у меня не работает эта программа
  • Вопрос задан
  • 103 просмотра
Решения вопроса 1
@Andy_U
Поскольку задача явно учебная, то ограничусь подсказкой: индекс последнего элемента массива из n элементов в Python'е равен не n, а n-1. Ну и индексация начинается с нуля, хотя с этим у Вас и так все в порядке.

P.S. Переменная k не используется и не нужна.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@FTBK
У Вас идёт использование лишней переменной i. Если проверяет компьютер, то ошибка в этом. А так почти всё верно.
вариант решения

a = []
for k in range(1000):
    a.append(int(input())) #список на 1000 эл-тов (считаем мы от нуля)
k = 0
for j in range(500): #нам нужно идти до половины, поэтому 500 значений в самый раз 
	if (a[999-j]+a[j]) > 20: #вычисляем сумму j-ого и [999-j]-ого элемента
		k = k+1 #увеличиваем счётчик
print(k)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы