Если лень перебирать вручную, можно воспользоваться программой
var k,l,r,x,f:integer; begin f := 3001; l := 0; r := 65534; x := (l + r) div 2; k := 1; while (x <> f) and (l < r) do begin writeln(k,' ',l,' ',r,' ',x); k := k + 1; if f < x then r := x - 1 else l := x + 1; x := (l + r) div 2 end; writeln(k,' ',l,' ',r,' ',x); end.
1. 0..65534 -> 32767
2. 0..32766 -> 16383
3. 0..16382 -> 8191
4. 0..8190 -> 4095
5. 0..4094 -> 2047
6. 2048..4094 -> 3071
7. 2048..3070 -> 2559
8. 2560..3070 -> 2815
9. 2816..3070 -> 2943
10. 2944..3070 -> 3007
11. 2944..3006 -> 2975
12. 2976..3006 -> 2991
13. 2992..3006 -> 2999
14. 3000..3006 -> 3003
15. 3000..3002 -> 3001
Если лень перебирать вручную, можно воспользоваться программой
var k,l,r,x,f:integer;
begin
f := 3001;
l := 0;
r := 65534;
x := (l + r) div 2;
k := 1;
while (x <> f) and (l < r) do
begin
writeln(k,' ',l,' ',r,' ',x);
k := k + 1;
if f < x then r := x - 1
else l := x + 1;
x := (l + r) div 2
end;
writeln(k,' ',l,' ',r,' ',x);
end.
Прочитать четверостишие
Воспроизвести четверостишие в памяти
Рассказать четверостишие без единой ошибки
Объяснение:
Начало
Выполняется действие Прочитать четверостишие.
Затем, выполняется действие Воспроизвести четверостишие в памяти.
Затем, проверяется условие Рассказать четверостишие без единой ошибки.
Если условие верно (Руслан рассказал четверостишие без единой ошибки) цикл закончился. Если нет, то цикл идёт заново
(Выполняется действие Прочитать четверостишие.
Затем, выполняется действие Воспроизвести четверостишие в памяти.
Затем, проверяется условие Рассказать четверостишие без единой ошибки.
Если условие верно (Руслан рассказал четверостишие без единой ошибки) цикл закончился.)
Так будет по кругу, пока Руслан не расскажет четверостишие без единой ошибки.