Учитывая данные n
, выведите значение константы Франсена-Робинсона с n
цифрами после десятичного знака с округлением.
правила
- Вы можете предположить, что все входные данные являются целыми числами от 1 до 60.
- Вы не можете хранить какие-либо связанные значения - константа должна быть вычислена, а не вызвана.
- Округление должно выполняться по следующим критериям:
- Если цифра, следующая за последней цифрой, меньше пяти, последняя цифра должна оставаться неизменной.
- Если цифра, следующая за последней цифрой, больше или равна пяти, последняя цифра должна быть увеличена на единицу.
- Вы должны вывести только первые
n+1
цифры. - Применяются стандартные лазейки.
Тестовые случаи
>>> f(0)
3
>>> f(1)
2.8
>>> f(11)
2.80777024203
>>> f(50)
2.80777024202851936522150118655777293230808592093020
>>> f(59)
2.80777024202851936522150118655777293230808592093019829122005
>>> f(60)
2.807770242028519365221501186557772932308085920930198291220055
Что если у вас нет поддержки произвольных значений точности?
—
flawr
@flawr Я полагаю, что язык должен был бы использовать некоторую форму конкатенации строк или аналогичную. В противном случае, это может быть не язык для этого вызова.
—
Эддисон Крамп
Жаль, что это в основном оставляет нас с жестким кодированием чисел. PS: почему бы вам не добавить
—
flawr
f(60)
к тестам? Таким образом, участникам не придется извлекать его извне =)
@flawr Жесткое кодирование запрещено по правилу 2.
—
Аддисон Крамп
Конечные нули в порядке?
—
Мего