Задача 25:
2^9+2^9=1024
2^7=128
2^4+2^5=48
2^5+2^2=36
1024+128+48+36=1236
Ответ: 9974552(это станет двойки)
Имеет смысл воспользоваться методом "дихотомии" (деления пополам).
Если с днем рождения все понятно: в году максимум 366 дней и требуется определить нужный, то непонятно, как быть с загаданным учеником - их условно пронумеровать и спрашивать о номере?
Поэтому принимаем такое решение. Мы делим список учеников на два части (например, написав сведения о каждом на отдельной карточке и разложив эти карточки на две равные кучки по 560/2 = 280 человек в каждой. Затем задаем вопрос: загаданный ученик находится в первой кучке? По результатам ответа кучку, содержащую загаданного ученика, снова делим пополам. Процесс повторяем пока не останется одна карточка. Аналогично поступаем с датами рождения.
Тогда количество вопросов определится, как степень числа 2, дающая число, не меньшее количества учеников (дней рождения).
2⁹ < 560 < 2¹⁰, поэтому ученик будет угадан максимум за 10 вопросов.
2⁸ < 366 < 2⁹, поэтому день рождения будет угадан максимум за 9 вопросов.
В сумме потребуется задать не более 9+10 = 19 вопросов.
Конечно, можно придумать более продвинутую систему, когда на карточках учеников будут указаны одновременно и даты их рождения, тогда количество вопросов можно снизить.
<span>C:/библиотека /повесть /летопись </span>
1.
var
a:array [1..100000] of integer;
n, k, i:integer;
begin
read (n);
for i:=1 to n do
read (a[i]);
for i:=1 to n do
writeln (a[i]);
readln (k);
for i:=1 to n do
if k>a[i] then write (a[i]);
end.
Дай фотку
тогда дам ответ это очень легко