var A: array[1..m, 1..n] of real; L, R, i, j, S: integer; x, k: real; Sort: boolean;
begin
clrscr;
randomize; for i := 1 to m do for j := 1 to n do A[i, j] := random(100) / 10; writeln('Матрица A');
repeat Sort := False; for i := 1 to m do for j := 1 to n - 1 do if A[i, j] > A[i, j + 1] then begin k := A[i, j]; A[i, j] := A[i, j + 1]; A[i, j + 1] := k; Sort := True; end; until sort = False;
for i := 1 to m do begin for j := 1 to n do write(A[i, j]:6:1); writeln; end; writeln;
writeln('Ввод x'); readln(x);
for i := 1 to m do begin L := 1; R := n; while L < R do begin j := trunc((L + R) / 2); if A[i, j] < x then L := j + 1 else R := j; end; if A[i, R] = x then writeln('В ', i, ' строке позиция x:', i, ',', R) else writeln('В ', i, ' элемент не найден'); end;
На вход подается 2 числа: a,b где 2^a + 2^(a+1) + 2^(a+2) + ... 2^(b-2) + 2^(b-1) + 2^b
На выводе число - результат формулы выше при подстановке a и b
1 вариант через цикл, сложность O(n):
VAR a, b, adder, sum, i: INTEGER; BEGIN READ(a, b); adder := 1; FOR i := 1 TO b DO BEGIN adder := 2 * adder; IF (i >= a) THEN sum := sum + adder END; WRITELN(sum); END.
2 вариант через побитовые сдвиги, сложность O(1):
VAR a, b: INTEGER; BEGIN READ(a, b); WRITELN((1 SHL (b+1)) - (1 SHL (a))); END.
var a,b: integer;
begin
read(a);
b: =a mod 10;
a: =a div 10;
if (a mod 10 < b) and (a mod 2 = 0) then b: =a mod 10;
a: =a div 10;
if (a mod 10 < b) and (a mod 2 = 0) then b: =a mod 10;
a: =a div 10;
if (a mod 10 < b) and (a mod 2 = 0) then b: =a mod 10;
if b mod 2=0 then writeln(b)else writeln('-1');
end.