Ctrl K

Деление без деления

Средняя
Даны два целых числа top и bottom. Верните частное top / bottom, отбросив дробную часть (округление к нулю): например, 4.9 превращается в 4, а -4.9 — в -4. Операторы умножения, деления и взятия остатка использовать нельзя — только сложение, вычитание, сравнения и битовые сдвиги. Считайте, что результат должен помещаться в 32-битное знаковое целое: если частное больше 2³¹ − 1, верните 2³¹ − 1, а если меньше -2³¹, верните -2³¹.
Пример 1
top=17, bottom=5 → 3

17 / 5 = 3.4, дробная часть отбрасывается — 3.

Пример 2
top=-20, bottom=6 → -3

-20 / 6 ≈ -3.33, отбрасываем дробную часть в сторону нуля — -3.

Пример 3
top=-2147483648, bottom=-1 → 2147483647

Точный ответ 2³¹ не помещается в диапазон, поэтому возвращаем 2³¹ − 1 = 2147483647.

Ограничения
  • -2³¹ ≤ top, bottom ≤ 2³¹ − 1
  • bottom ≠ 0
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиКоды с зеркальным отражением СредняяСложение без плюса СредняяГонка из общей кучки чисел СредняяСумма различий в битах СредняяПульт с четырьмя кнопками Средняя
загружаем Python…
Вход
top=17, bottom=5
Ожидается
3

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 137 тестов на сервере, включая скрытые.