Ketika Anda membulatkan angka, jika digit berikutnya >= 5
Anda tambahkan 1. Misalnya:
3.1415926535 rounded to 1dp is 3.1
3.1415926535 rounded to 4dp is 3.1416 <-- Note the 5 changed to 6
3.1415926535 rounded to 5dp is 3.14159
3.1415926535 rounded to 9dp is 3.141592654 <-- Note the 3 changed to 4
Anda tantangan adalah menerima bilangan bulat sebagai input dan output jumlah tempat desimal sebelum yang Anda harus membulatkan akar kuadrat dari angka - yaitu jumlah tempat desimal sebelum angka angka yang >= 5
terjadi.
Bilangan bulat akan berada di antara 0 dan 100.000 termasuk jadi untuk kasus tepi 59752 Anda harus mendukung 17 titik desimal (untuk memeriksa ke-17).
Jika bahasa pemrograman Anda tidak dapat mengubah jumlah titik desimal, Anda dapat menampilkan "?" pesan ke pengguna.
Contoh:
Input Root Output
5 -> 2.23 606797749979 -> 2
41 -> 6.40312423 743284 -> 8 (Largest gap under 100)
596 -> 24.4131112314 674 -> 10 (Largest gap under 1000)
59752 -> 244.44222221212112029 -> 16 (Largest gap under 100000)
Lakukan apa yang Anda inginkan pada kotak yang sempurna.
Ini adalah kode-golf sehingga kode terpendek menang.
Bagi siapa pun yang tertarik, angka 310.617 adalah yang terbesar di bawah 1.000.000 dan memiliki 18 sebelum Anda mencapai angka >= 5
.
Jawaban:
CJam, 17 byte
Cobalah online.
sumber
Pyth, 13 byte
Suite uji
Mulai dengan
Q
sama dengan input. Pada setiap langkah waktu, kalikanQ
dengan 100, dihitung sebagaichr('d')
. Ambil akar kuadratnya. Ambil mod ini 10. Jika hasilnya lebih besar dari5
, akhiri. Cetak jumlah iterasi yang diperlukan untuk mengakhiri, diindeks 0.Secara terperinci:
sumber
CJam,
292628 byteCobalah secara Online.
Menempatkan "?" jika angka tidak muncul yang dapat dibulatkan (kuadrat sempurna atau terlalu panjang).
sumber
Pyth, 22 byte
Penjelasan
Saya sangat yakin ini bisa golf. Jika input tidak memiliki angka lebih tinggi dari 4, itu akan mencetak -1. Mendukung 17dp.
sumber
Javascript, 59 byte
Kembali
?
untuk 59752 karena JavaScript hanya menggunakan presisi ganda.sumber
Linux shell, 52 byte
Saya mencoba untuk
dc
solusi murni , tetapi gagal. Presisi dapat disesuaikan (angka pertama).Karena OP dengan baik hati menyatakan bahwa "Anda dapat melakukan apa yang Anda inginkan pada kuadrat sempurna", dalam hal ini solusi ini menghasilkan presisi +1, dalam hal ini 35.
sumber
Mathematica 60 byte
Contoh
sumber
Apply
.Ruby, 46 Bytes
Ini mungkin tidak valid, karena hanya muat 16 digit.
sumber
nil
, karena tidak ada digit melewati 4 berada di seluruh string. Ini mungkin tergantung pada versi ruby.