Дан целочисленный массив из 30 элементов. Элементы массива могут принимать целые значения от 0 до 10 000 включительно. Опишите на одном из языков программирования алгоритм, который находит сумму элементов массива, больших 100 и при этом не кратных 4, а затем заменяет каждый такой элемент на число, равное найденной сумме. Гарантируется, что хотя бы один такой элемент в массиве есть. В качестве результата необходимо вывести изменённый массив, каждый элемент выводится с новой строчки. Например, для исходного массива из шести элементов:
101
128
6
105
4
18
программа должна вывести следующий массив:
206
128
6
206
4
18
Исходные данные объявлены так, как показано ниже на примерах для пяти языков программирования. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать некоторые из описанных переменных.
| Бейсик | Python |
|---|---|
CONST N AS INTEGER = 30 DIM A (1 TO N) AS LONG DIM I AS LONG, J AS LONG, K AS LONG FOR I = 1 TO N INPUT A(I) NEXT I … END
| # допускается также # использовать две # целочисленные переменные j и k a = [] n = 30 for i in range(0, n): a.append(int(input())) …
|
| Паскаль | Алгоритмический язык |
const N=30; var a: array [1..N] of longint; i, j, k: longint; begin for i:=1 to N do readln(a[i]); … end.
| алг нач цел N=30 целтаб a[1:N] цел i, j, k нц для i от 1 до N ввод a[i] кц … кон |
| С++ | |
#include <iostream> using namespace std; const int N=30; int main(){ int a[N]; int i, j, k; for (i=0; i < N; i++) cin >> a[i]; … return 0; }
| |
| Паскаль |
|---|
k := 0; for i := 1 to N do if (a[i] > 100) and (a[i] mod 4 <> 0) then k:=k+a[i]; for i := 1 to N do begin if (a[i] > 100) and (a[i] mod 4 <> 0) then a[i] := k; writeln(a[i]); end; |
| Алгоритмический язык |
k := 0 нц для i от 1 до N если a[i] > 100 и mod(a[i], 4) <> 0 то k := k + a[i] все кц нц для i от 1 до N если a[i] > 100 и mod(a[i], 4) <> 0 то a[i] := k все вывод a[i], нс кц |
| Бейсик |
K = 0 FOR I = 1 TO N IF A(I) > 100 AND A(I) MOD 4 <> 0 THEN K = K + A(I) END IF NEXT I FOR I = 1 TO N I F A(I) > 100 AND A(I) MOD 4 <> 0 THEN A(I) = K END IF PRINT A(I) NEXT I |
| Python |
k = 0 for i in range(0, n): if (a[i] > 100 and a[i] % 4 != 0): k+=a[i] for i in range(0, n): if (a[i] > 100 and a[i] % 4 != 0): a[i] = k print(a[i]) |
| Си |
k = 0; for (i = 0; i < N; i++) if (a[i] > 100 && a[i]%4 != 0) k+=a[i]; for (i = 0; i < N; i++) { if (a[i] > 100 && a[i]%4 != 0) a[i] = k; cout << a[i]; } |

