с информатикой У исполнителя Альфа две команды, которым присвоены номера: 1). прибавь 1. 2). умножь на b (b - неизвестное натуральное число; b ≥ 2). Выполняя первую из них, Альфа увеличивает число на экране на 1, а выполняя вторую, умножает это число на b. Известно, что программа 11211 переводит число 12 в число 114. Определите значение b. *
0, 01, 02, 10
Если выбрать кодом 0, декодировка будет происходить однозначно (ни в одном из остальных кодов нуля нет). А если выбирать коды из двух цифр - опять-таки всё будет однозначно, т.к. все коды букв будут иметь одинаковую длину (например, для декодировки 1121222202 надо будет разбить строку на подстроки длины 2: 11 21 22 22 02, и расшифровать каждую подстроку). Без условия на длину слова подошли бы они все.
Нужен код наименьшей длины, поэтому в ответы пойдёт 0.
crt;
var
a: array [1..25] of integer;
ar: array [1..5, 1..5] of integer;
i, j, k, n, m, x: integer;
begin
write('n=');
readln(n);
writeln('Заполните массив:');
for i := 1 to n do read(a[i]);
for i := 1 to n do
for j := i + 1 to n do
if a[i] > a[j] then begin
x := a[i];
a[i] := a[j];
a[j] := x;
end;
writeln('Отсортированный массив: ');
for i := 1 to n do write(a[i], ' ');
writeln;
n := floor(sqrt(n));
m := sqr(n);
writeln('Двумерный массив: ');
for k := 1 to m do
begin
x := (k - 1) div n;
j := n - x;
if x mod 2 = 0 then
i := n * (x + 1) + 1 - k
else
i := k - n * x;
ar[i, j] := a[k]
end;
for i := 1 to n do
begin
for j := 1 to n do write(ar[i, j]:4);
writeln
end
end.
Тестовое решение:
n=16
Заполните массив:
1 3 5 7 9 11 13 15 2 4 6 8 10 12 14 16
Отсортированный массив:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Двумерный массив:
13 12 5 4
14 11 6 3
15 10 7 2
16 9 8 1
n=25
Заполните массив:
1 3 5 7 9 11 2 4 6 8 10 12 14 13 16 17 15 20 18 19 23 25 22 21 24
Отсортированный массив:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
Двумерный массив:
25 16 15 6 5
24 17 14 7 4
23 18 13 8 3
22 19 12 9 2
21 20 11 10 1