Код Senior Бинарный поиск обновлено

Целочисленный корень

Условие

Целая часть квадратного корня неотрицательного числа, без Math.sqrt.

Примеры

intSqrt(8) // 2
intSqrt(16) // 4
intSqrt(0) // 0

Как подойти

Шаблон правой границы - зеркало левой, и у него своя ловушка: при lo = mid середину надо брать с округлением вверх, иначе на паре соседних значений lo никогда не сдвинется. Полезно уметь написать оба шаблона, а не только левый.

Подсказки: 2
  1. Это поиск последнего значения, квадрат которого не превышает x.
  2. Для правой границы середину надо округлять вверх, иначе цикл зациклится.

Решите в тренажёре

Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.