function max(a, b: integer): integer; begin if a > b then max := a else max := b; end;
begin readln(a, b); writeln(max(a, 2 * b) * max(2 * a - b, b)); end.
5) const n = 10;
var a: array[1..n] of integer; i, s: integer;
begin for i := 1 to n do begin readln(a[i]); if i mod 2 = 0 then s := s + a[i]; end; writeln(s); end.
6) const handsfree = false;
var a: array[1..100, 1..100] of real; product: real; i, j, m, n: integer;
begin {ввод матрицы} if handsfree then begin n := random(20) + 2; m := random(20) + 2; end else begin write('n, m ='); readln(n, m); end;
writeln('Данные матрицы:'); for i := 1 to m do begin for j := 1 to n do if handsfree then begin a[i, j] := random(100) - 50; write(a[i, j]:4, ' ') end else read(a[i, j]); writeln; end;
product := 1; for i := 1 to m do for j := 1 to n do if a[i, j] > 0 then product := product * a[i, j]; writeln('product = ', product); end.
6030
Объяснение:
C18 в 16-ричной системе состоит из 3 чисел: C 1 8.
8 - 1 в десятичной (16 в 0 степени)
1 - 16 в десятичной (16 в 1 степени)
C(12) - 256 в десятичной (16 в 2 степени)
Работает это по принципу разложения в десятичной системе счисления, когда мы работаем со степенями десяти, только сейчас это степени 16.
Перемножаем эти числа и складываем:
8*1+1*16+12*256 = 3096 (в десятичной системе счисления).
Теперь переводим в 8-ную систему:
Максимальная степень 8 которая меньше 3096 это 512(8 в 3 степени)
Значит число будет состоит из n(в нашем случае 3)+1 чисел => из 4 чисел, причем правое разрядовое число будет равно 3096 div 512 равно 6.
Остаток от деления 24. Понижаем степени восьми с 3 степени до 2. 64 больше чем 24, поэтому следующее число после 6 равно 0.
Теперь степень равна 1. Восемь меньше 24, поэтому делим 24 на 8 и получаем разрядовое число. 24 div 8 = 3 без остатка => следующие 2 числа равны 3 0
Соединяем все 4 числа и получаем 6030