Все проверялось с помощью программы(код ниже):
3 16
8 13
13 10
11 14
16 11
______
9 5
7 9
12 6
10 10
15 7
13 11
11 15
16 12
<span>//PascalABC.NET
//Версия 3.3, сборка 1611 (06.01.2018)</span>
begin
var x:= ;
var y:= ;
Println(x,y);
while x<16 do
begin
if x>y then begin x:=x-2; y:=y+4; end else begin x:=x+5; y:=y-3; end;
Println(x,y);
end;
end.
По сути нужно найти набор букв "child" и добавить сзади "ren".
1) Начало
2) Ввод числа n и массива s(n)
2.1) k = 0
3) Цикл по i от 1 до n-4
3.1) Если (s(i)="c") и (s(i+1)="h") и (s(i+2)="i") и (s(i+3)="l") и (s(i+4)="d"), то
3.1.1) k = k + 3
3.1.2) Переопределяем размер массива на s(n+k)
3.1.3) Цикл по j от i+5 до n
// Отодвигаем на 3 знака все буквы после s(i+4)="d"
3.1.3.1) s(j+3) = s(j)
3.1.3.2) Конец цикла по j
3.1.4) s(i+5)="r"; s(i+6)="e"; s(i+7)="n"
3.1.5) Конец Если
3.2) Конец цикла по i
4) Вывод массива s(n+k)
5) Конец
1) 100*2^13 : 3*2^9 = (25:3)*2^6 секунд
2) 768 *(25:3) *2^6 = 256*25*2^6 =25*2^14 бит = 25*2 Кбайта= 50 Кбайт
ИЛИ:
1) 1536 : 768 = 2 ( скорость уменьшилась в 2 раза)
2) 100 :2 = 50 Кбайт
Ответ 50
Ответ 3.3
Обяснение: подставляем поочередно в выражение все варианты ответа. Подходит только 3. Смотрим первую скобку, 3 больше двух? Да, истина. Вторую скобку, 3 больше 3? Нет, ложь. Перед второй скобкой стоит инверсия, отрицание, отрицание перед ложью = истина. Истина конънкция истина = истина.
Работает при условии, что А - не отрицательное число:
Var A:integer;
Begin
Write('A = ');
Read(A);
While A >0 do
Begin
A:=A-3;
End;
if A=0 then Write('А кратно трём')
else Write('А не кратно трём')
End.
Var
A:integer;
Begin
Write('A = ');
Read(A);
While A >3 do
Begin
A:=A-3;
End;
WriteLn('Остаток от деления А на 3: ',A);
End.