Вопрос задан 05.03.2025 в 15:36. Предмет Информатика. Спрашивает Азаренко Ирина.

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

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

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

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

Перейти к ответам

Ответы на вопрос

Отвечает Кувязев Максим.

Для решения задачи, нужно создать программу, которая будет искать все элементы массива, равные заданному числу XX, и выводить их индексы. Важно помнить, что индексация должна начинаться с 1, а не с 0, как в Python.

Давайте пошагово разберем, как можно решить эту задачу:

Шаги:

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

    • Первая строка содержит число NN, которое обозначает количество элементов в массиве.
    • Вторая строка содержит NN чисел — элементы массива.
    • Третья строка содержит число XX, которое нужно искать в массиве.
  2. Поиск индексов:

    • Нам нужно пройти по всем элементам массива и найти те, которые равны XX.
    • Для каждого такого элемента запишем его индекс (с учетом того, что индексация начинается с 1).
  3. Вывод результата:

    • Если найдено хотя бы одно совпадение, нужно вывести индексы всех таких элементов.
    • Если совпадений нет, выводим "-1".

Пример решения:

python
# Чтение входных данных N = int(input()) # Размер массива arr = list(map(int, input().split())) # Элементы массива X = int(input()) # Число X

# Массив для хранения индексов indices = []

# Проходим по массиву и находим все индексы, где arr[i] == X for i in range(N): if arr[i] == X: indices.append(i + 1) # Индексы начинаются с 1

# Если индексы найдены, выводим их if indices: print(" ".join(map(str, indices))) else: print(-1)

Объяснение кода:

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

    • N = int(input()) — считываем размер массива.
    • arr = list(map(int, input().split())) — считываем элементы массива как целые числа.
    • X = int(input()) — считываем число, которое будем искать в массиве.
  2. Поиск индексов:

    • Мы проходим по массиву с помощью цикла for i in range(N) и проверяем, равен ли элемент массива arr[i]arr[i] числу XX.
    • Если элемент равен XX, то добавляем его индекс (с учётом, что нумерация начинается с 1) в список indices.
  3. Вывод результата:

    • Если в списке indices есть хотя бы один индекс, то мы выводим все индексы, разделённые пробелами.
    • Если таких элементов нет, выводим -1.

Пример:

Входные данные:

5 1 2 1 3 5 1

Выходные данные:

1 3

Пояснение:

  • В массиве [1, 2, 1, 3, 5] два элемента равны 1, это элементы с индексами 1 и 3 (по 1-балльной нумерации).
  • Программа выводит индексы этих элементов: 1 3.

Если бы таких элементов не было, например, если бы X=6X = 6, то программа вывела бы -1.

Важные моменты:

  • Мы учитываем, что индексация начинается с 1.
  • Если элемент не найден, выводится -1.
  • Программа работает за время O(N), что эффективно для максимального размера массива (до 10000 элементов).

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос