Дан целочисленный массив из 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] кц … кон
// PascalABC.NET 3.3, сборка 1540 от 16.09.2017 // Внимание! Если программа не работает, обновите версию!
begin var L:=ReadSeqInteger('Введите через пробел три цифры',3).ToList; if L.All(x->x=0) then Writeln('Хотя бы одна цифра должна отличаться от нуля') else if L.All(x->x.IsOdd) then Writeln('Хотя бы одна цифра должна быть четной') else begin var d3:=L.Where(x->x.IsEven).Min; L.RemoveAt(L.FindIndex(x->x=d3)); var s:=L.OrderBy(x->x); Writeln(s.Last,s.First,d3) end end.
Примеры: Введите через пробел три цифры 2 0 5 520
Введите через пробел три цифры 0 5 0 500
Введите через пробел три цифры 3 9 5 Хотя бы одна цифра должна быть четной
Исходные данные объявлены так, как показано ниже на примерах для некоторых языков программирования. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать некоторые из описанных переменных.
Бейсик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
var L:=ReadSeqInteger('Введите через пробел три цифры',3).ToList;
if L.All(x->x=0) then Writeln('Хотя бы одна цифра должна отличаться от нуля')
else
if L.All(x->x.IsOdd) then Writeln('Хотя бы одна цифра должна быть четной')
else begin
var d3:=L.Where(x->x.IsEven).Min;
L.RemoveAt(L.FindIndex(x->x=d3));
var s:=L.OrderBy(x->x);
Writeln(s.Last,s.First,d3)
end
end.
Примеры:
Введите через пробел три цифры 2 0 5
520
Введите через пробел три цифры 0 5 0
500
Введите через пробел три цифры 3 9 5
Хотя бы одна цифра должна быть четной