Новая Школа - онлайн-школа подготовки к ЕГЭ
Задача Задача №3164026
А
Аноним
03 мая 2025 12:44 · публичный вопрос
А
Аноним

Дан массив из N целых чисел. Выяснить, какое число встречается в массиве раньше – положительное или отрицательное.

Ответ нейросети
03 мая 2025 12:44

Для решения задачи нужно определить, какое число появляется впервые в массиве — положительное или отрицательное. Иными словами, нужно пройти по массиву и найти первый элемент, являющийся либо положительным, либо отрицательным, и потом определить, какой тип чисел появился первым.

Вот пошаговое решение:

Шаг 1. Инициализация

Объявляем две переменные:

  • first_positive_index — индекс первого положительного числа, изначально равен -1.
  • first_negative_index — индекс первого отрицательного числа, изначально равен -1.

Шаг 2. Поиск первого положительного и отрицательного числа

Обходя массив с начала:

  • Если встречается положительное число и first_positive_index ещё не определён, запоминаем его индекс.
  • Если встречается отрицательное число и first_negative_index ещё не определён, запоминаем его индекс.

Шаг 3. Определение результата

  • Если оба индекса найдены, сравниваем их:
    • Если first_positive_index меньше, значит сначала было положительное число.
    • Если first_negative_index меньше, значит сначала было отрицательное число.
  • Если найден только один тип числа, он и был первым.

Пример:

Рассмотрим массив: [ -3, 2, -5, 4 ]

  • Первый отрицательный — индекс 0 (-3)
  • Первый положительный — индекс 1 (2)
  • Первый положительный встречается раньше, значит положительное число встретилось раньше.

Полная реализация на Python:

def first_positive_or_negative(arr):
    first_positive_index = -1
    first_negative_index = -1

    for i, num in enumerate(arr):
        if num > 0 and first_positive_index == -1:
            first_positive_index = i
        elif num < 0 and first_negative_index == -1:
            first_negative_index = i

        # Если оба найдены, можем прервать цикл
        if first_positive_index != -1 and first_negative_index != -1:
            break

    if first_positive_index == -1 and first_negative_index == -1:
        return "В массиве нет ни положительных, ни отрицательных чисел"
    elif first_positive_index == -1:
        return "Первым встретилось отрицательное число"
    elif first_negative_index == -1:
        return "Первым встретилось положительное число"
    else:
        if first_positive_index < first_negative_index:
            return "Положительное число встречается раньше"
        else:
            return "Отрицательное число встречается раньше"

# Пример использования:
arr = [ -3, 2, -5, 4 ]
print(first_positive_or_negative(arr))

Если тебе нужно более подробно объяснить либо есть конкретный массив, присылай — помогу разобраться!