Напишите программу, которая выводит номера элементов массива, равных заданному значению X . Входные...

Тематика Информатика
Уровень 10 - 11 классы
массив элементы индексы заданное значение ввод вывод программа номера равенство поиск Python алгоритм
0

Напишите программу, которая выводит номера элементов массива, равных заданному значению X .

Входные данные Первая строка содержит размер массива N . Во второй строке через пробел задаются N чисел – элементы массива. В третьей строке записано число X . Гарантируется, что 0 < N ≤ 10000 .

Выходные данные Программа должна вывести в одной строке номера элементов массива, равных X , разделив их пробелами. Предполагается, что нумерация начинается с единицы. Если таких элементов нет, нужно вывести число -1.

Примеры входные данные 5 1 2 1 3 5 1 выходные данные 1 3

avatar
задан 20 дней назад

3 Ответа

0

Для решения задачи необходимо написать программу, которая будет обрабатывать входные данные, анализировать массив и выводить индексы элементов, равных заданному значению ( X ). Ниже приведен пример реализации на языке Python.

def find_indices_of_x():
    # Считываем размер массива N
    N = int(input().strip())
    # Считываем элементы массива и преобразуем их в список целых чисел
    array = list(map(int, input().strip().split()))
    # Считываем число X
    X = int(input().strip())
    
    # Находим индексы элементов, равных X
    indices = [i + 1 for i in range(N) if array[i] == X]  # Нумерация с 1, поэтому i + 1
    
    # Если список индексов не пуст, выводим их через пробел
    if indices:
        print(" ".join(map(str, indices)))
    else:
        # Если таких элементов нет, выводим -1
        print(-1)

# Запуск функции
find_indices_of_x()

Пояснение

  1. Чтение входных данных:

    • Сначала читается размер массива ( N ).
    • Затем считываются элементы массива, разделенные пробелами, и преобразуются в список целых чисел.
    • После этого считывается число ( X ).
  2. Поиск индексов:

    • Используем генератор списка для нахождения всех индексов ( i ), для которых элемент массива равен ( X ). При этом индексы сдвигаются на единицу, чтобы соответствовать требуемой нумерации с единицы.
  3. Вывод результата:

    • Если список индексов не пуст, выводим их, объединяя в строку и разделяя пробелами.
    • Если список пуст (т.е. таких элементов нет), выводим (-1).

Особенности

  • Временная сложность: ( O(N) ), поскольку необходимо один раз пройтись по всем элементам массива.
  • Память: Используется дополнительная память для хранения списка индексов, что не превышает ( O(N) ).

Этот подход обеспечивает эффективное решение задачи в условиях ограничений на размер массива ( N ).

avatar
ответил 20 дней назад
0

N = int(input())
arr = list(map(int, input().split()))
X = int(input())

indices = [i+1 for i in range(N) if arr[i] == X]

if indices:
    print(*indices)
else:
    print(-1)

avatar
ответил 20 дней назад
0

# Чтение входных данных
N = int(input())
array = list(map(int, input().split()))
X = int(input())

# Поиск элементов массива, равных X
indices = [i+1 for i in range(N) if array[i] == X]

# Вывод результатов
if indices:
    print(' '.join(map(str, indices)))
else:
    print(-1)

avatar
ответил 20 дней назад

Ваш ответ

Вопросы по теме