(P*R)+(P*не R)+(Q*R)+(не P*Q*R)=R+(Q*R)+(не P*Q*R)=R+(не P*Q*R)=R+(не P*Q)
если неправильно, разрешаю прибить меня:D
Имеет смысл воспользоваться методом "дихотомии" (деления пополам).
Если с днем рождения все понятно: в году максимум 366 дней и требуется определить нужный, то непонятно, как быть с загаданным учеником - их условно пронумеровать и спрашивать о номере?
Поэтому принимаем такое решение. Мы делим список учеников на два части (например, написав сведения о каждом на отдельной карточке и разложив эти карточки на две равные кучки по 560/2 = 280 человек в каждой. Затем задаем вопрос: загаданный ученик находится в первой кучке? По результатам ответа кучку, содержащую загаданного ученика, снова делим пополам. Процесс повторяем пока не останется одна карточка. Аналогично поступаем с датами рождения.
Тогда количество вопросов определится, как степень числа 2, дающая число, не меньшее количества учеников (дней рождения).
2⁹ < 560 < 2¹⁰, поэтому ученик будет угадан максимум за 10 вопросов.
2⁸ < 366 < 2⁹, поэтому день рождения будет угадан максимум за 9 вопросов.
В сумме потребуется задать не более 9+10 = 19 вопросов.
Конечно, можно придумать более продвинутую систему, когда на карточках учеников будут указаны одновременно и даты их рождения, тогда количество вопросов можно снизить.
1) 2048 * 1536 = 3145728 точек в изображении
2) 3145728 * 3 байта = 9437184 байт - размер файла
9437184 байт / 1024 = 9216 Килобайт / 1024 = 9 Мегабайт
Ответ: 9 Мб размер этого графического файла
Var a, b, prod, i: integer;
begin
writeln('Введите два числа: ');
readln(a, b);
prod := 0;
if (b < 0) then
for i := b to -1 do
dec(prod, a)
else
for i := 1 to b do
inc(prod, a);
writeln(prod)
<span>end.</span>
Program zz;
var a:integer;
begin
Writeln('Введите число:');
readln(a);
write('Число в обратном порядке:');
while(a<>0) do begin
write(a mod 10);
a:=a div 10;
end;
end.