Дан массив, содержащий 2017 положительных целых чисел, не превышающих 1000. Необходимо найти и вывести максимальный из тех элементов этого массива, шестнадцатеричная запись которых содержит не менее трёх цифр и оканчивается цифрой 3. Если таких чисел в массиве нет, ответ считается равным нулю. Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из описанных.
| Бейсик | Python |
|---|---|
CONST N = 2017 DIM A (N) AS INTEGER DIM I, M, K AS INTEGER FOR I = 1 TO N INPUT A(I) NEXT I ... END
| # допускается также # использовать две # целочисленные переменные m и k a = [] n = 2017 for i in range(0, n): a.append(int(input()))
|
| Паскаль | Алгоритмический язык |
const N = 2017; var a: array [1..N] of integer; i, m, k: integer; begin for i := 1 to N do readln(a[i]); ... end.
| алг нач цел N = 2017 целтаб a[1:N] цел i, m, k нц для i от 1 до N ввод a[i] кц ... кон |
| Си++ | |
#include <iostream> using namespace std; #define N 2017 int main() { int a[N]; int i, m, k; for (i = 0; i < N; i++) cin >> a[i]; ... return 0; }
| |
В качестве ответа Вам необходимо привести фрагмент программы (или описание алгоритма на естественном языке), который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например Free Pascal 2.6) или в виде блок-схемы. В этом случае Вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии (например, в образце, записанном на естественном языке).
| Паскаль |
|---|
m := 0; for i := 1 to N do begin if (a[i] >= 256) and (a[i] mod 16 = 3) and (a[i] > m) then m := a[i]; end; writeln(m); |
| Алгоритмический язык |
m := 0; нц для i от 1 до N если (a[i] >= 256) и (a[i] mod 16 = 3) и (a[i] > m) то m := a[i]; все кц вывод m |
| Бейсик |
M = 0 FOR I = 1 TO N IF (A[I] >= 256) AND (A[I] MOD 16 = 3) AND (A[I] > M) THEN M := A[I] END IF NEXT I PRINT M |
| Python |
m = 0 for i in range(0, n): if (a[i] >= 256) and (a[i] % 16 == 3) and (a[i] > m): m = a[i] print(m) |
| Си |
m = 0; for (i = 0; i < N; i++) if ((a[i] >= 256) && (a[i] % 16 == 3) && (a[i] > m)) m = a[i]; cout « m « endl; |
Примечание.
В числе 1A3 записанном в шестнадцаттеричной системе счисления 3 цифр, то есть A также считается цифрой.

