v_yanushkovsky

#69 Sqrt(x)

Jul 18th, 2026
34
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.83 KB | None | 0 0
  1.     int mySqrt(int x) {
  2.         if (x < 2) return x;
  3.        
  4.         int left = 1;
  5.         int right = x;
  6.         int answer = 0;
  7.        
  8.         while (left <= right) {
  9.             int mid = left + (right - left) / 2;
  10.             long long square = 1LL * mid * mid;
  11.            
  12.             if (square == x) {
  13.                 return mid;  // нашли точный корень
  14.             } else if (square < x) {
  15.                 answer = mid;    // запоминаем mid как возможный ответ
  16.                 left = mid + 1;  // ищем большее число
  17.             } else {
  18.                 right = mid - 1; // square > x, ищем меньшее
  19.             }
  20.         }
  21.        
  22.         return answer;  // возвращаем последнее подходящее значение
  23.     }
Advertisement
Add Comment
Please, Sign In to add comment