Объяснение:
Двоичный поиск эффективно определяет положение искомого элемента (или его отсутствие) в упорядоченном наборе.
Это один из базовых и важных алгоритмов.
Если склады от №1 до №15 заполнены, то:
- когда плотник открывает склад №16, он оказывается пуст (1-ая открытая дверь);
- тогда плотник решает искать между №1 и №15, открывает склад №8, он оказывается заполнен (2-ая открытая дверь);
- теперь он ищет между №9 и №15, открывает склад №12 — он заполнен (3-ья открытая дверь);
- далее он ищет между №13 и №15, открывает склад №14 - он заполнен (4-ая открытая дверь);
- наконец он открывает последний склад № 15 (5-ая дверь).
Правильный ответ: 5
Содержание верного ответа и указания по оцениванию
(допускаются иные формулировки ответа, не искажающие его смысла)
Решение для OpenOffice.org Calc и для Microsoft Excel
Задание допускает много решения. Ниже приведено одно из возможных решений.
Подготовительная часть.
В ячейку запишем формулу
информатика
или
информатика
(здесь и далее первая формула используется для русскоязычного интерфейса, вторая – для англоязычного)
В ячейку запишем формулу
информатика
или
информатика
Скопируем эти формулы во все ячейки диапазона
Задание 1.
В ячейку запишем формулу
или
Задание 2.
В ячейку запишем формулу
или
В ячейку запишем формулу
или
В ячейку запишем формулу
Возможны и другие варианты решения.
Например, при выполнении задания можно упорядочить данные так, чтобы нужные строки стояли подряд, а потом подсчитать их количество, используя нумерацию строк.
Если задание выполнено правильно и при выполнении задания использовались файлы, специально подготовленные для проверки выполнения данного задания, то должны получиться следующие ответы.
На первый вопрос:
На второй вопрос:
- если число делится на a и b, оно делится на a×b;
- если число не превышает N, то m×a×b, где m=1,2,3... также не превышает N;
- если при этом число не делится на с, то a×b также не делится на с.
Следовательно, количество чисел, не превышающих N равно N div (a×b), где div - операция деления нацело.
Из этого количества нужно вычесть количество чисел, делящихся на c, т.е. N div (a×b×c)
// PascalABC.NET 3.3, сборка 1634 от 14.02.2018
// Внимание! Если программа не работает, обновите версию!
begin
var n:=ReadInteger('N=');
var (a,b,c):=ReadInteger3('Введите через пробел a,b,c:');
Writeln(n div (a*b) - n div (a*b*c))
end.