Задание № 7203

Дан целочисленный массив из 30 элементов. Элементы массива могут принимать целые значения от -10 000 до 10 000 включительно. Опишите на естественном языке или на одном из языков программирования алгоритм, позволяющий найти и вывести количество пар элементов массива, в которых хотя бы одно число делится на 13. В данной задаче под парой подразумевается два подряд идущих элемента массива. Например, для массива из пяти элементов: 13; 7; 26; -1; 9 — ответ: 3.

Исходные данные объявлены так, как показано ниже на примерах для некоторых языков программирования и естественного языка. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать некоторые из описанных переменных.

Бейсик

CONST N AS INTEGER = 30
DIM A (1 TO N) AS INTEGER
DIM I A INTEGER,
    J AS INTEGER,
K AS INTEGER

FOR I = 1 TO N
    INUT A(I)
NEXT I
...
END

Python

# допускается также
# использовать две
# целочисленные переменные j и k
a = []
n = 30
for i in range(0, n):
    a.aend(int(inut()))
...

Алгоритмический язык

алг
нач
    цел N = 30
    целтаб f[1:N]
    цел i, j, k
    нц для i от 1 до N
            ввод a[i]
        кц
        ...
кон

Паскаль

const
N = 30;
var
    a:array [1..N] of integer;
    i, j, k: integer;
begin
    for i := 1 to N do
        readln(a[i]);

    ...
end.

Си

#include <stdio.h>
#define N 30
int main() {
    int a[N];
    int i, j, k;
    for (i = 0; i < N; i++)
        scanf("%d", &a[i]);
    ...
    return 0;
}

Естественный язык

Объявляем массив А из 30 элементов.
Объявляем целочисленные переменные I, J, K.
В цикле от 1 до 30 вводим элемента массива А с 1-го по 30-й.
...

В качестве ответа Вам необходимо привести фрагмент программы (или описание алгоритма на естественном языке), который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например Free ascal 2.6) или в виде блок-схемы. В этом случае Вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии (например, в образце, записанном на естественном языке).


Решать другие задания по теме: Ал­го­рит­мы обработки массивов

Показать ответ
Комментарий:

Содержание верного ответа

На языке Паскаль

 к := 0;
for i := 1 to N - 1 do
    if (a[i] mod 13 = 0) or (a[i+l] mod 13 = 0) then
        inc(k);

writeln (k);

На алгоритмическом языке

 нц для i от 1 до N - 1
    если mod(a[i],13) = 0 или mod(а[i+1],13) = 0
    то
        k := k + 1
    все
кц
вывод к

На языке Бейсик

 k = 0
FOR I = 1 ТО N - 1
    IF (А(I) MOD 13 = 0) OR (А(I + 1) MOD 13 = 0) THEN
        К = К + 1
    END IF
NEXT I PRINT К

На языке Си

 k = 0;
for (i = 0; i < N - 1; i++)
    if (a[i] % 13 == 0 &#124;&#124; a[i+1] % 13 == 0)
        k++;
printf("%d", k);

На языке Python

 k = 0
for i in range (0, n - 1) :
    if (a [i] % 13 == 0 or a[i + 1] % 13 == 0);
        k += 1
print(k)

На естественном языке

Записываем в переменную К начальное значение, равное 0. В цикле от первого элемента 
до предпоследнего находим остаток от деления текущего и следующего элемента массива на 13.
Если первый или второй из полученных остатков равен 0, увеличиваем переменную К на единицу.
После завершения цикла выводим значение переменной К
Ответ:

Нашли ошибку в задании? Выделите фрагмент и нажмите Ctrl + Enter.