Поскольку вы упоминаете «Взлом интервью по кодированию» ...
Обычно в контексте среднего интервью по кодированию не стоит беспокоиться о деталях, связанных с реализацией, таких как эта.Интервьюер пытается подтвердить базовую компетентность и понимание - им редко захочется запускать ваш код, и вам обоим должно быть дано понять, что алгоритм сломается в экстремальных пределах базовых типов данных вашего языка.Если интервьюер спрашивает конкретно об ограничениях, то вы могли бы кратко упомянуть, что функция потерпит неудачу для значений, превышающих (Integer.MAX_VALUE / 2) в этом языке.
Ограничение будет применяться практически к любому алгоритму, для которого вы пишетесобеседование по кодированию, и ни один разумный интервьюер не ожидает, что вы специально разработаете свое решение для смягчения такого рода крайнего случая.Я был бы очень обескураживающим, если бы я попросил кандидата написать функцию, которая производит числа Фибоначчи, и они потратили время, пытаясь оптимизировать случай, когда выходные данные превышают 16-значные значения.
Если по какой-то причине вам понадобилосьЧтобы найти квадратный корень из чрезвычайно больших значений с использованием этого алгоритма в реальном сценарии, я ожидаю, что вам придется реализовать его с использованием универсальной библиотеки больших чисел для вашего конкретного языка.При этом я бы не стал использовать свой собственный алгоритм квадратного корня для любого реального случая использования практически при любых обстоятельствах.