Помогите найти ошибку в задаче python
Напишите программу, которая находит в массиве элемент, самый близкий по величине к данному числу.
Формат ввода
В первой строке задается одно натуральное число N, не превосходящее 1000 – размер массива. Во второй строке содержатся N чисел – элементы массива (целые числа, не превосходящие по модулю 1000). В третьей строке вводится одно целое число x, не превосходящее по модулю 1000.
Формат вывода
Вывести значение элемента массива, ближайшее к x. Если таких чисел несколько, выведите любое из них.
Пример:
Тест 1
Входные данные:
5
1 2 3 4 5
6
Вывод программы:
5
Тест 2
Входные данные:
5
5 4 3 2 1
3
Вывод программы:
3
Код:
N = int(input())
n = list(map(int, input().split()))
x = int(input())
obrez_spisok = []
l = 0
while l < N:
____obrez_spisok.append(n[l])
____l += 1
find_list = []
i = 0
for i in obrez_spisok:
____e = abs(x - i)
____find_list.append(e)
rez = min(find_list)
print(find_list.index(rez) + 1)
Выдает ошибку в одном из тестов
У меня получилась такая программа, решающая эту задачу.
N = int(input('Кол. чисел:'))
a=[int(input('Ввести число:')) for i in range(N)]
x=int(input('Заданное число:'))
b=[abs(a[i]-x) for i in range(len(a))]
print(a[b.index(min(b))])
У меня получилось такое решение:
N = int(input('Длинна массива:'))
a = [int(input('Ввести число:')) for i in range(N)]
x = int(input('Заданное число:'))
minraz = (x - a[0])**2 # Минимальная разница по модулю (для сравнения первый элемент)
b = 0 # Нулевой индекс a[i]
i = 0 # Начальная переменная для цикла
while i < len(a):
if (x-a[i])**2 <= minraz:
minraz = (x-a[i])**2
b = i
i += 1
print('Последовательность: ', a)
print('Самое близкое значение элемента массива: ', a[b])
print('Индекс элемента массива: ', b)