При каждом полученном ответе интервал делится на 2 половины, в одной из которой искомое число. Таким образом максимальное число раз, которым мы можем разделить интервал от 1 до 8 = log2(8) = 3. Чтобы точно угадать число требуется еще 1 попытка.
Ответ: 4, log2(n) + 1 для общего случая
<em>// PascalABC.NET 3.2, сборка 1439 от 09.05.2017</em>
<em>// Внимание! Если программа не работает, обновите версию!</em>
begin
var a:=ArrRandom(10,-10,10); a.Println;
Writeln('Сумма положительных: ',a.Where(x->x>0).Sum)
end.
<u>Пример</u>
3 -4 9 -5 2 1 6 -4 10 -2
Сумма положительных: 31
В тропосфере развиваются циклон и антициклон.
73+(37-12)*15=73+ 25*15=73+375=448
//Pascal ABC.NET v3.1 сборка 1219
//Как я понял, количество очков случайно
Var
a,i,s:integer;
begin
randomize;
for i:=1 to 5 do
begin
a:=random(11);
writeln(i,' выстрел -',a);
s:=s+a;
end;
writeln('Сумма=',s);
if s=50 then writeln('Идет с Зиночкой в ресторан') else writeln('На тренировку в тир');
end.
Пример работы программы:
1 выстрел -3
2 выстрел -10
3 выстрел -7
4 выстрел -8
5 выстрел -0
Сумма=28
На тренировку в тир