Хотел бы поинтересоваться можно ли усовершенствовать программу так, чтобы она за меньшее кол-во вопросов угадывала число.
Условие задачи.
Я загадаю число из интервала от А до В (включительно). Напишите программу, которая за минимальное число вопросов отгадает это число. Играть будем так. Я сообщаю программе число от А до В, программа выводит свою версию ответа. Если число меньше задуманного, то я сообщаю программе об этом -1 , если больше, то числом 1, а если число угадано 0.
Мой вариант:
uses crt;
var
a,b:integer;
s:integer;
ans:integer;
ask:integer;
BEGIN
Write('a=');ReadLn(a);
Write('b=');ReadLn(b);
repeat
s:=b-a;
ask:=b-(s div 2);
WriteLn(ask);
ReadLn(ans);
If ans=1 then b:=ask;
If ans=-1 then a:=ask;
until ans=0;
END.