
Задан одномерный массив А(N) (N<=60). Найти сумму положительных элементов и произведение
отрицательных массива. Если сумма больше произведения, найти максимальный элемент массива, а если нет – выдать об этом сообщение

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

// Внимание! Если программа не работает, обновите версию!
begin
var a:=ArrRandom(ReadInteger('n='),-99,99); a.Println;
var s:=a.Where(t->t>0).Sum;
var p:=a.Where(t->t<0).Aggregate(BigInteger(1),(x,y)->x*y);
Writeln('S = ',s,', П = ',p)
end.
Пример
n= 15
-61 -99 0 -48 -47 66 -27 89 -84 -77 32 -71 25 65 -42
S = 277, П = -7094887924215168



Для решения этой задачи мы можем использовать следующий алгоритм:
1. Создаем массив A с элементами A[0], A[1], ..., A[N-1]. 2. Инициализируем переменные sum_positive = 0 (для хранения суммы положительных элементов) и prod_negative = 1 (для хранения произведения отрицательных элементов). 3. Проходим по массиву A и для каждого элемента A[i] выполняем следующие шаги: - Если A[i] > 0, то добавляем его к переменной sum_positive. - Если A[i] < 0, то умножаем его на переменную prod_negative. 4. После завершения цикла проверяем условие: если sum_positive > prod_negative, то выводим максимальный элемент массива A, иначе выводим сообщение о том, что сумма положительных элементов не больше произведения отрицательных.
Пример кода на Python:
```python def find_sum_and_prod(A): sum_positive = 0 prod_negative = 1 max_element = A[0]
for i in range(len(A)): if A[i] > 0: sum_positive += A[i] elif A[i] < 0: prod_negative *= A[i] if A[i] > max_element: max_element = A[i]
if sum_positive > prod_negative: print("Сумма положительных элементов больше произведения отрицательных.") print("Максимальный элемент массива:", max_element) else: print("Сумма положительных элементов не больше произведения отрицательных.")
# Пример использования A = [1, -2, 3, -4, 5] find_sum_and_prod(A) ```
При таком подходе мы сможем эффективно найти сумму положительных элементов и произведение отрицательных элементов массива, а также определить, больше ли сумма положительных элементов произведения отрицательных, и вывести максимальный элемент массива в случае положительного результата.


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







Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili