Введи алгоритм без запятых (например, 1221), который превратит строку пПАА В ПАПА не более чем за 2 команды. Исполнитель работает со строками. При выполнении алгоритма он полностью проходит строку слева направо и ищет комбинации букв. В случае нахождения, заменяет их на указанные. У исполнителя есть две команды: 1. ппA -> АПП (заменяет буквы пПА на Апп). 2. АП -> ПА (заменяет буквы АП на ПА). ответ:
Const n = 10; var matrix : array [1..n] of array [1..n] of integer; i, j, max : integer; begin {формирование матрицы} for j := 1 to n do begin if j <= Trunc(n / 2) then {находим последний индекс для вставки 1} max := j else max := n - j + 1; for i := 1 to max do {заполняем линию единицами} begin matrix[j][i] := 1; matrix[j][n - i + 1] := 1; end; end; {вывод матрицы (если не нужно, удалите код)} for j := 1 to n do begin for i := 1 to n do write(matrix[j][i], ' '); writeln; end; end.
1) 513 =512+1 =2^9+2^0 =1000000001 (2) число разбиваем на суммы слагаемых степеней числа 2 (например, число 99=64+35=64+32+3=64+32+2+1=2^6+2^5+2^1+2^0=1100011(2) ) 2) делим на 2, пока не получим число меньше 2 то есть 1 (дробная часть отбрасывается)
513 256 128 64 32 16 8 4 2 1 если четно внизу пишем 0 иначе 1 1 0 0 0 0 0 0 0 0 1 собираем цифры с конца на начало
n = 10;
var
matrix : array [1..n] of array [1..n] of integer;
i, j, max : integer;
begin
{формирование матрицы}
for j := 1 to n do
begin
if j <= Trunc(n / 2) then {находим последний индекс для вставки 1}
max := j
else
max := n - j + 1;
for i := 1 to max do {заполняем линию единицами}
begin
matrix[j][i] := 1;
matrix[j][n - i + 1] := 1;
end;
end;
{вывод матрицы (если не нужно, удалите код)}
for j := 1 to n do
begin
for i := 1 to n do
write(matrix[j][i], ' ');
writeln;
end;
end.
число разбиваем на суммы слагаемых степеней числа 2 (например, число 99=64+35=64+32+3=64+32+2+1=2^6+2^5+2^1+2^0=1100011(2) )
2) делим на 2, пока не получим число меньше 2 то есть 1 (дробная часть отбрасывается)
513 256 128 64 32 16 8 4 2 1 если четно внизу пишем 0 иначе 1
1 0 0 0 0 0 0 0 0 1 собираем цифры с конца на начало
513=1000000001 (2)
3) 513 | 2
512|
1 256 | 2
256 |
0 128 | 2
128 |
0 64 | 2
64 |
0 32 | 2
32 |
0 16 | 2
16 |
0 8 | 2
8 |
0 4 | 2
4 |
0 2 | 2
2 |
0 1
Собираем остатки при вычитании 0 и 1 с конца до начала
Еще вариант на калькуляторе (для проверки)