Дан целочисленный массив из 40 элементов. Элементы массива могут принимать целые значения от –100 до 100 включительно. Опишите на естественном языке или на одном из языков программирования алгоритм, позволяющий найти и вывести количество пар элементов массива, сумма которых чётна, а произведение больше 100. Под парой подразумевается два подряд идущих элемента массива. Исходные данные объявлены так, как показано ниже на примерах для некоторых языков программирования и естественного языка. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать некоторые из описанных переменных.
| Бейсик | Паскаль |
|---|---|
N = 40 DIM A(N) AS LONG DIM I, J, K AS LONG FOR I = 1 TO N INPUT A(I) NEXT I ... END | const N = 40; var a: array [1..N] of longint; i, j, k: longint; begin for i := 1 to N do readln(a[i]); ... end. |
| Си++ | Естественный язык |
#include <iostream> using namespace std; #define N 40 int main() { long a[N]; long i, j, k; for (i=0; i<N; i++) cin >> a[i]; ... } | Объявляем массив A из 40 элементов. Объявляем целочисленные переменные I, J, K. В цикле от 1 до 40 вводим элементы массива A с 1-го по 40-й. ... |
| Алгоритмический язык | Python |
алг нач цел N = 40 цел таб a[1:N] цел i, j, k нц для i от 1 до N ввод a[i] кц ... кон | N = 40 i = None j = None k = None a =[int(input()) for i in range(N)] ... |
В качестве ответа Вам необходимо привести фрагмент программы (или описание алгоритма на естественном языке), который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например Free Pascal 2.6) или в виде блок-схемы. В этом случае Вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии (например, в образце, записанном на естественном языке).
| На языке Паскаль |
|---|
k := 0; for i := 1 to N - 1 do if ((a[i] + a[i + 1] ) mod 2 = 0) and (a[i] * a[i + 1] > 100) then inc(k); writeln(k); |
| На алгоритмическом языке |
k := 0 нц для i от 1 до N − 1 если mod(a[i] + a[i + 1], 2) = 0 и a[i] * a[i + 1] > 100 то k := k + 1 все кц вывод k |
| На языке Бейсик |
K = 0 FOR I = 1 TO N−1 IF (A(I) + A(I + 1)) MOD 2 = 0 AND A(I) * A(I + 1) > 100 THEN K = K + 1 END IF NEXT I PRINT K |
| На языке Си |
k = 0; for (i = 0; i < N − 1; i++) if ((a[i] + a[i + 1]) % 2 == 0 && a[i] * a[i + 1] > 100) k++; cout << k; |
| На языке Python |
k = 0 for i in range(N - 1): if (a[i] + a[i + 1]) % 2 == 0 and a[i] * a[i + 1] > 100: k += 1 print(k) |
| На естественном языке |
Записываем в переменную K начальное значение, равное 0. В цикле от первого элемента до предпоследнего находим остаток от деления суммы текущего и следующего элементов массива на 2. Если значение данного остатка равно 0 и произведение текущего и следующего элементов массива больше 100, увеличиваем переменную K на единицу. После завершения цикла выводим значение переменной K |

