Ctrl K

Запись дроби десятичной

Средняя
Даны целые top и bottom. Запишите дробь top / bottom десятичной строкой. - Если дробь целая, верните только целую часть без точки: "7", "-3". - Если десятичная запись конечна, верните её полностью: "0.625". - Если дробная часть бесконечно повторяется, возьмите в скобки повторяющийся блок: "0.(3)", "2.41(6)". Скобки ставятся как можно раньше, а блок в них — самый короткий. Отрицательный результат начинается с минуса; у нуля знака нет.
Пример 1
top=5, bottom=8 → '0.625'

5/8 = 0.625 — дробь конечная, скобки не нужны.

Пример 2
top=-29, bottom=12 → '-2.41(6)'

29/12 = 2.41666…: после цифр 4 и 1 бесконечно повторяется 6. Знак минус, потому что знаки числителя и знаменателя разные.

Пример 3
top=3, bottom=37 → '0.(081)'

3/37 = 0.081081…, повторяется блок из трёх цифр 081.

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

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