Дан целочисленный массив из 40 элементов. Элементы массива могут принимать целые значения от 0 до 100 включительно. Опишите на естественном языке или на одном из языков программирования алгоритм, позволяющий найти и вывести количество пар элементов массива, сумма которых не кратна 6, а произведение меньше 1000. Под парой подразумевается два подряд идущих элемента массива. Исходные данные объявлены так, как показано ниже на примерах для некоторых языков программирования и естественного языка. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать некоторые из описанных переменных.
| Бейсик | Паскаль |
|---|---|
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]; ... }
| алг нач цел N = 40 цел таб a[1:N] цел i, j, k нц для i от 1 до N ввод a[i] кц ... кон |
| Естественный язык | |
Объявляем массив A из 40 элементов. Объявляем целочисленные переменные I, J, K. В цикле от 1 до 40 вводим элементы массива A с 1-го по 40-й.
| |
| Python | |
# допускается также # использовать две # целочисленные переменные j, k a = [] n = 40 for i in range(0, n): a.append(int(input())) ... | |
В качестве ответа Вам необходимо привести фрагмент программы, который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например, Free Pascal 2.6). В этом случае Вы должны использовать те же самые исходные данные и переменные, какие были предложены в приведённых фрагментах.
| Паскаль |
|---|
| k := 0; for i := 1 to N - 1 do if ((a[i] + a[i + 1]) mod 6 <> 0) and (a[i] * a[i + 1] < 1000) then inc(k); writeln(k); |
| Алгоритмический язык |
| k := 0 нц для i от 1 до N - 1 если mod(a[i] + a[i + 1], 6) <> 0 и a[i] * a[i + 1] < 1000 то k := k + 1 все кц вывод k |
| Бейсик |
| K = 0 K = 0 FOR I = 1 TO N-1 IF (A(I) + A(I + 1)) MOD 6 <> 0 AND A(I) * A(I + 1)<1000 THEN K = K + 1 END IF NEXT I PRINT K |
| Python |
| k = 0 for i in range(n - 1): if (a[i] + a[i + 1]) % 6 != 0 and a[i] * a[i + 1] < 1000: k += 1 print(k) |
| Си |
| k = 0; for (i = 0; i < N - 1; i++) if ((a[i] + a[i + 1]) % 6 != 0 && a[i] * a[i + 1] < 1000) k++; cout << k; |
| На естественном языке |
| Записываем в переменную K начальное значение, равное 0. В цикле от первого элемента до предпоследнего находим остаток от деления суммы текущего и следующего элементов массива на 6. Если значение данного остатка не равно 0 и произведение текущего и следующего элементов массива меньше 1000, увеличиваем переменную K на единицу. После завершения цикла выводим значение переменной K |

