Очевидно, в игре нужно задавать "да-нет" вопросы.
Делим интервал пополам, и выясняем, в какой половине задуманное число. Потом делим эту половину опять пополам, и т.д.
1 вопрос: "Число больше 64?" Ответ: "нет" (значит, число между 1 и 64)
2 вопрос: "Число больше 32?" Ответ: "нет" (значит, число между 1 и 32)
3 вопрос: "Число больше 16?" Ответ: "нет" (значит, число между 1 и 16)
4 вопрос: "Число больше 8?" Ответ: "да" (значит, число между 9 и 16)
5 вопрос: "Число больше 12?" Ответ: "да" (значит, число между 13 и 16)
6 вопрос: "Число больше 14?" Ответ: "нет" (значит, число между 13 и 14)
7 вопрос: "Число больше 13?" Ответ: "нет" (значит, число = 13)
Задание 4 Отметьте точки: 1(2,6), 2(2,8), 3(1,10), 4(2,11), 5(4,8), 6(13,8), 7(15,6), 8(10,6), 9(8,2), 10(5,2), 11(7,6), 12(7,8)
нэли
Получился самолет
Ставишь точки на координатной плоскости и соединяешь последовательно, как в задании
// PascalABC.NET 3.1, сборка 1213 от 04.04.2016
begin
var a:=SeqGen(10,i->i+8,1).ToArray; a.Println;
a:=a.Select((x,i)->(i.IsOdd?2*x:x)).ToArray; a.Println;
end.
<u><em>Тестовое решение:</em></u>
9 10 11 12 13 14 15 16 17 18
9 20 11 24 13 28 15 32 17 36
// PascalABC.NET 3.1, сборка 1213 от 04.04.2016
begin
var a:=ArrRandom(20,-55,120); a.Println;
Writeln('Кол-во отрицательных равно ',a.Where(x->x<0).Count)
end.
<u><em>Тестовое решение:</em></u>
-9 33 -42 -52 102 38 11 -35 51 86 -20 17 66 21 51 37 40 -49 -20 84
Кол-во отрицательных равно 7
// PascalABC.NET 3.1, сборка 1213 от 04.04.2016
begin
var b:=ReadArrInteger('7 чисел:',7);
var i:=b.IndexMin;
Writeln('Минимальный элемент B[',i+1,']=',b[i])
end.
<u><em>Тестовое решение:</em></u>
7 чисел: 23 15 -13 26 -8 4 0
Минимальный элемент B[3]=-13
// PascalABC.NET 3.1, сборка 1213 от 04.04.2016
begin
var a:=ReadArrInteger('12 чисел:',12);
Swap(a[4],a[11]); a.Println
end.
<u><em>Тестовое решение:</em></u>
12 чисел: 4 7 -3 0 4 6 4 -5 -11 3 5 13
4 7 -3 0 13 6 4 -5 -11 3 5 4
Угу, вот, надеюсь, хватит:)