Напишите программу на любом известном вам алгоритмическом языке. на вход программе подается число n. далее вводится n чисел. программа определяет, будет ли произведение этих чисел положительным
Произведение чисел положительно, если среди них есть четное количество отрицательных чисел. И отрицательно, если их нечетное количество. Я просто алгоритм напишу 1) Вводим число N 2) Устанавливаем счетчик k = 0 3) Цикл по i от 1 до N 3.1) Вводим очередное число 3.2) Если число < 0, то прибавляем счетчик k = k + 1 3.3) Конец цикла 4) Если число k четное (k mod 2 = 0), то результат положительный Если k нечетное (k mod 2 = 1), то результат отрицательный. 5) Конец А вот делать так, как Sky предлагает, я бы не стал. Он тупо перемножает числа. Произведение может оказаться слишком большим, да оно нам и не нужно.
uses crt; var n,pr,x:integer; a: array [1..1000] of integer; begin write('Введи количество чисел последовательности:'); readln(n); pr:=1; for x:=1 to N do begin readln(a[x]); pr:=pr*a[x]; end; if pr>0 then writeln('YES') else writeln('NO'); end.
Я просто алгоритм напишу
1) Вводим число N
2) Устанавливаем счетчик k = 0
3) Цикл по i от 1 до N
3.1) Вводим очередное число
3.2) Если число < 0, то прибавляем счетчик k = k + 1
3.3) Конец цикла
4) Если число k четное (k mod 2 = 0), то результат положительный
Если k нечетное (k mod 2 = 1), то результат отрицательный.
5) Конец
А вот делать так, как Sky предлагает, я бы не стал. Он тупо перемножает числа.
Произведение может оказаться слишком большим, да оно нам и не нужно.
uses crt;
var n,pr,x:integer;
a: array [1..1000] of integer;
begin
write('Введи количество чисел последовательности:');
readln(n);
pr:=1;
for x:=1 to N do
begin
readln(a[x]);
pr:=pr*a[x];
end;
if pr>0 then writeln('YES')
else writeln('NO');
end.