Алгоритм: for j : = 1 to n do if (8 < = a[j]) and (a[j] < = 63) and (a[j] div 8 < a[j] mod 8) then k: =k + 1 for j : = 1 to n - перебор всех элементов массива (8 < = a[j]) and (a[j] < = 63) - восьмеричная запись чисел от 8₁₀ до 63₁₀ содержит ровно две цифры (a[j] div 8 < a[j] mod 8) - первая (старшая) цифра меньше второй (младшей) при восьмеричная запись чисел от 8₁₀ до 63₁₀ k: =k + 1 - счётчик количества элементов массива соответствующих условиям программа целиком: const n=40; var a: array [1..n] of integer; i, j, k: longint; begin for i: =1 to n do readln(a[i]); for j : = 1 to n do if (8 < = a[j]) and (a[j] < = 63) and (a[j] div 8 < a[j] mod 8) then k: =k + 1; writeln('количество элементов массива, восьмеричная запись которого содержит ровно две цифры, причем первая (старшая) цифра меньше второй (младшей), равно: ',k); end.
versalmoda2971
04.12.2022
1) 7 - изза начального присвоение m 2) 994. 4 соответствует условию, остальные числа лишь максимизируют число 3) var n, d, m: longint; begin readln(n); {m : = n mod 10; ошибочная строка} m: =-1; {n mod 10 - может не удовлетворять условию, 0 - может и удовлетворять условию } while n > 0 do begin d : = n mod 10; if d < 5 then if d > m then m : = d; n : = n div 10; end; {if m = 0 then ошибочная строка} if m = -1 then {если в цикле m так не разу и не поменялась} writeln('no') else writeln(m); end.