Дан целочисленный массив из 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 AS INTEGER, J AS INTEGER, K AS INTEGER FOR I = 1 TO N INPUT A(I) NEXT I ...
END
| 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 <iostream> using namespace std; #define N 30 int main() { int a[N]; int i, j, k; for (i = 0; i < N; i++) cin >> a[i]; ... return 0; }
| алг нач цел N = 30 целтаб a[1:N] цел i, j, k нц для i от 1 до N ввод a[i] кц ...
кон |
| Python | Естественный язык |
# допускается также # использовать две # целочисленные переменные j и k a = [] n = 30 for i in range(0, n): a.append(int(input())) ...
| Объявляем массив A из 30 элементов. Объявляем целочисленные переменные I, J, K. В цикле от 1 до 30 вводим элементы массива A с 1-го по 30-й. … |
В качестве ответа Вам необходимо привести фрагмент программы (или описание алгоритма на естественном языке), который должен находиться на месте многоточия. Вы можете записать решение также на другом языке
программирования (укажите название и используемую версию языка программирования, например Free Pascal 2.6) или в виде блок-схемы. В этом случае Вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии (например, в образце, записанном на естественном языке).
| Паскаль |
|---|
k := 0; for i := 1 to N − 1 do if (a[i] mod 13 = 0) or (a[i+1] mod 13 = 0) then inc(k); writeln(k); |
| Алгоритмический язык |
k := 0; нц для i от 1 до N − 1 если mod(a[i],13) = 0 или mod(a[i+1],13) = 0 то k := k + 1 все кц вывод k |
| Бейсик |
K = 0 FOR I = 1 TO N − 1 IF (A(I) MOD 13 = 0) OR (A(I + 1) MOD 13 = 0) THEN K = K + 1 END IF NEXT I PRINT 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) |
| Си |
k = 0; for (i = 0; i < N − 1; i++) if (a[i]%13 == 0 || a[i+1]%13 == 0) k++; cout « k « endl; |
| Естественный язык |
| Записываем в переменную K начальное значение, равное 0. В цикле от первого элемента до предпоследнего находим остаток от деления текущего и следующего элемента массива на 13. Если первый или второй из полученных остатков равен 0, увеличиваем переменную K на единицу. После завершения цикла выводим значение переменной K |

