Diberikan input n
, output nilai konstanta Fransén-Robinson dengan n
digit setelah desimal, dengan pembulatan.
Aturan
- Anda dapat mengasumsikan bahwa semua input adalah bilangan bulat antara 1 dan 60.
- Anda tidak boleh menyimpan nilai terkait apa pun - konstanta harus dihitung, tidak ditarik kembali.
- Pembulatan harus dilakukan dengan kriteria sebagai berikut:
- Jika digit yang mengikuti digit terakhir kurang dari lima, digit akhir harus tetap sama.
- Jika digit yang mengikuti digit terakhir lebih besar dari atau sama dengan lima, digit akhir harus ditambah satu.
- Anda hanya harus menampilkan
n+1
digit pertama . - Celah standar berlaku.
Uji Kasus
>>> f(0)
3
>>> f(1)
2.8
>>> f(11)
2.80777024203
>>> f(50)
2.80777024202851936522150118655777293230808592093020
>>> f(59)
2.80777024202851936522150118655777293230808592093019829122005
>>> f(60)
2.807770242028519365221501186557772932308085920930198291220055
Bagaimana jika Anda tidak memiliki dukungan untuk pelampung presisi yang sewenang-wenang?
—
flawr
@ flawr Saya kira bahasa harus menggunakan beberapa bentuk rangkaian string atau sejenisnya. Kalau tidak, itu mungkin bukan bahasa untuk tantangan ini.
—
Addison Crump
Sayang sekali, itu pada dasarnya hanya membuat kita dengan hardcoding angka. PS: Mengapa kamu tidak menambah
—
flawr
f(60)
test case? Dengan begitu peserta tidak perlu mengambilnya secara eksternal =)
@ flawr Hardcoding tidak diizinkan oleh aturan 2.
—
Addison Crump
Apakah membuntuti nol tidak masalah?
—
Mego