Дан целочисленный массив из 20 элементов. Элементы массива могут принимать целые значения от –10 000 до 10 000 включительно. Опишите на одном из языков программирования алгоритм, позволяющий найти и вывести количество пар элементов массива, в которых сумма элементов делится на 2, но не делится на 4. В данной задаче под парой подразумеваются два соседних элемента массива.
Исходные данные объявлены так, как показано ниже на примерах для некоторых языков программирования. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать некоторые из описанных переменных.
БейсикPython
CONST N = 20 DIM A (1 TO N) AS INTEGER DIM I, J, K AS INTEGER FOR I = 1 TO N INPUT A(I) NEXT I … END
// допускается также использовать
// две целочисленные переменные
// j и k
a = []
n = 20
for i in range(0, n):
a.append(int(input()))
…
ПаскальАлгоритмический язык
const N = 20; var a: array [1..N] of integer; i, j, k: integer; begin for i := 1 to N do readln(a[i]); … end.
алг нач цел N = 20 целтаб a[1:N] цел i, j, k нц для i от 1 до N ввод a[i] кц … кон
Var a,p,n,i:integer; begin p := 0; n := 0; for i := 1 to 15 do begin read(a); if a mod 3 = 0 then if a > 0 then p := p + 1 else if a < 0 then n := n + 1 end; if p > n then writeln('Положительных') else if p < n then writeln('Отрицательных') else writeln('Одинаково') end.
{вариант "как-то посложнее"}
var a,i,s:integer; begin s := 0; for i := 1 to 15 do begin read(a); s := s + ord(a mod 3 = 0) * (ord(a > 0) - ord(a < 0)) end; if s > 0 then writeln('Положительных') else if s < 0 then writeln('Отрицательных') else writeln('Одинаково') end.
Исходные данные объявлены так, как показано ниже на примерах для некоторых языков программирования. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать некоторые из описанных переменных.
БейсикPython
CONST N = 20 DIM A (1 TO N) AS INTEGER DIM I, J, K AS INTEGER FOR I = 1 TO N INPUT A(I) NEXT I … END
// допускается также использовать
// две целочисленные переменные
// j и k
a = []
n = 20
for i in range(0, n):
a.append(int(input()))
…
ПаскальАлгоритмический язык
const N = 20; var a: array [1..N] of integer; i, j, k: integer; begin for i := 1 to N do readln(a[i]); … end.
алг нач цел N = 20 целтаб a[1:N] цел i, j, k нц для i от 1 до N ввод a[i] кц … кон
Си
begin
p := 0;
n := 0;
for i := 1 to 15 do
begin
read(a);
if a mod 3 = 0 then
if a > 0 then p := p + 1
else
if a < 0 then n := n + 1
end;
if p > n then writeln('Положительных') else
if p < n then writeln('Отрицательных') else
writeln('Одинаково')
end.
{вариант "как-то посложнее"}
var a,i,s:integer;
begin
s := 0;
for i := 1 to 15 do
begin
read(a);
s := s + ord(a mod 3 = 0) * (ord(a > 0) - ord(a < 0))
end;
if s > 0 then writeln('Положительных') else
if s < 0 then writeln('Отрицательных') else
writeln('Одинаково')
end.