Ini tugas sederhana. Diberikan bilangan real positif atau negatif, bulatkan ke bilangan bulat keseluruhan berikutnya mendekati nol.
Tantangan
Ambil input melalui bentuk wajar apa pun (stdin, fungsi, dll.) Dari satu bilangan real positif atau negatif.
Bulatkan angka ini "ke nol" - ini berarti jika positif Anda akan dibulatkan ke bawah, dan jika negatif Anda akan mengumpulkan.
Kembalikan nomor atau hasilkan ke konsol.
Uji kasus
1.1 => 1
-1.1 => -1
500.4 => 500
-283.5 => -283
50 => 50
-50 => -50
Aturan
Ini adalah kode-golf , jadi setidaknya skor dalam byte menang.
Waspadai celah standar .
Selamat bersenang-senang! lebih banyak tantangan Jimmy segera hadir
code-golf
number
rational-numbers
hubungkan charger Anda
sumber
sumber
3.00
untuk3.14
?0.01
dan-0.01
harus menghasilkan0
...Jawaban:
Jelly , 1 byte
Program lengkap (sebagai Tautan monadik ia mengembalikan daftar panjang satu).
Cobalah online!
Bagaimana?
sumber
Python 3 , 3 byte
Cobalah online!
Memotong digit setelah titik desimal.
CATATAN: Ini adalah jawaban yang sepele. Silakan lihat jawaban-jawaban lain sebelum upvoting
sumber
Python 2 , 3 byte
Cobalah online!
sumber
Perl 5
-p056l15
, 2 byteCobalah online!
Bagaimana cara kerjanya?
Atau jika Anda lebih suka jawaban yang lebih tradisional:
Perl 5 , 6 byte
Cobalah online!
sumber
\n
, bukan\r
.\n
akan menjadi l12. Ini terlihat sama di TIO.-Minteger
-p
$_/=1
Labyrinth & Hexagony , 3 byte
Terima kasih kepada FryAmTheEggman untuk menunjukkan bahwa saya telah menulis Hexagony!
Cobalah online! & Cobalah online!
Bagaimana?
Labyrinth dan Hexagony akan memberi tahu Anda sedini mungkin! ...
sumber
IO@
di Backhand bekerja dengan cara yang sama, dan&.@
di Befunge. Mungkin banyak bahasa dengan input integer, dan hanya penanganan integer akan samabrainfuck , 26 byte
Cobalah online!
Output dengan tanda
.
jika angka adalah desimalTidak ada banyak golf yang bijaksana, kecuali bahwa daripada mengurangi 46 untuk memeriksa apakah karakter adalah
.
, saya tambahkan 5 dan kalikan dengan 5 untuk mendapatkan 255, kemudian tambahkan satu lagi untuk berguling ke nol. Mengurangkan 3, mengalikan dengan 6 dan mengurangi 2 adalah bytecount yang samasumber
C (tcc),
392110 byteSaya sebenarnya cukup terkejut tidak ada yang berpikir untuk menggunakan C.
Sepertinya ini bukan fungsi identitas. Tipe int implisit dari fungsi f memotong titik-mengambang.
TIO
Lebih kecil kemungkinannya untuk menipu orang tetapi memiliki panjang byte yang lebih pendek:
TIO
sumber
float
karena ini menggunakan register berbeda untuk input nilai floating point.J , 6 byte
Cobalah online!
Masuk
*
kali*
putaran ke bawah<.
dari nilai absolut@|
sumber
Perl 6 , 4 byte
Fungsi anonim.
Cobalah online!
sumber
Java (OpenJDK 8) ,
15 byte9 byteCobalah online!
terima kasih kepada @ kevin-cruijssen
sumber
(int)
. Dan di sini menyenangkan 15 byte alternatif menggunakan referensi metode. :)Excel, 10 byte
TRUNC
memotong angka ke bilangan bulat dengan menghapus bagian fraksional dari angka tersebut.sumber
R ,
135 byteTerima kasih Robin Ryder
Cobalah online!
sumber
Retina 0.8.2 , 5 byte
Cobalah online! Tautan termasuk kasus uji.
sumber
Ruby , 11 byte
Saya memilih yang ini karena ini membedakan dirinya dari lambda yang biasanya digunakan pegolf Ruby kami (untungnya, ia memiliki bytecount yang sama dengan solusi "tradisional"):
Cobalah online!
sumber
ReRegex , 12 byte
Cobalah online!
ReRegex adalah bahasa pemrograman yang cocok dan menggantikan berulang-ulang sampai tidak ada yang cocok.
sumber
JavaScript, 6 byte
Cobalah online!
JavaScript, 8 byte
Menggunakan built in adalah 2 byte lebih lama ...
Cobalah online!
sumber
x=>~~x
? Masih 6 byte.K (oK) , 3 byte
Cobalah online!
sumber
Kode mesin Intel 8087 FPU, 14 byte
Input adalah nilai presisi tunggal di lokasi memori
A
(aDD
), output adalah nilai integer di lokasi memoriB
(aDW
).8087 pertama-tama harus dimasukkan ke dalam putaran menuju mode nol dengan menetapkan kata kontrol (
0F7FH
). Kemudian muat nilai floating point dan simpan kembali ke integer.sumber
Merah , 4 byte
Cobalah online!
Konversi float ke integer (konversi dengan prototipe)
sumber
Zsh , 10 byte
xor
dengan 0. Saya menemukan ini selama tantangan lain baru-baru ini . Cobalah online!Tidak bekerja di Bash atau POSIX sh (dash).
sumber
V (vim) , 4 byte
Cobalah online!
Terima kasih @DJMcMayhem , 1 byte disimpan.
sumber
Tong ,
191713 byteIni menghasilkan beberapa karakter tambahan yang tidak diinginkan. Juga, ini keluar dengan kesalahan. (Sekarang kita perlu input terbalik!)
sumber
Spasi (dengan vii5ard compiler ),
1817 byteHuruf
S
(spasi),T
(tab), danN
(baris baru) ditambahkan hanya sebagai penyorotan.[..._some_action]
ditambahkan sebagai penjelasan saja.Cobalah online. Anda harus menyalin-tempel kode sendiri (perhatikan bahwa SE mengonversi tab menjadi banyak spasi!) Untuk menjalankan kode di vii5ard Whitespace-compiler online. Saat mengklik jalankan, ia akan meminta input (yaitu
-285.5
), dan setelah mengklik enter akan melanjutkan dan menghasilkan-283
.Penjelasan dalam pseudo-code:
Spasi hanya dapat menggunakan I / O sebagai bilangan bulat atau karakter tunggal, jadi dalam hal ini akan membaca input sebagai bilangan bulat dan mengabaikan karakter trailing lainnya. Yaitu
-283.5
atau-283abc5
keduanya akan menjadi input (dan dengan demikian output) sebagai-283
.Sayangnya ini di atas tidak berfungsi pada TIO karena dua alasan (semua kompiler Whitespace sedikit berbeda ..):
no parse
kesalahan ketika kita mencoba membaca input sebagai integer, yang bukan integer yang valid. Jadi, alih-alih kami akan membaca satu karakter pada satu waktu, dan berhenti (dengan kesalahan) segera setelah kami menemukan.
atau tidak ada input lagi (yaitu50
/-50
).SSN
, sedangkan pada TIO memerlukan tambahanS
atauT
:SSSN
/SSTN
. Yang pertamaS
adalah Enable Stack Manipulation ; yang keduaS
adalah Push yang mengikuti sebagai integer ; yang ketigaS
/T
positif / negatif masing-masing; dan setiapS
/T
setelah itu (diikuti olehN
) adalah angka yang ingin kita dorong dalam biner, di manaS=0
danT=1
. Untuk integer 0 bagian biner ini tidak masalah, karena ini 0 secara default. Tetapi pada TIO kita masih harus menentukan positif / negatif, dan dengan sebagian besar kompiler Whitespace lainnya seperti vii5ard tidak.Spasi (dengan TIO compiler ), 48 byte
Huruf
S
(spasi),T
(tab), danN
(baris baru) ditambahkan hanya sebagai penyorotan.[..._some_action]
ditambahkan sebagai penjelasan saja.Cobalah online (dengan spasi, tab, dan hanya baris baru).
Penjelasan dalam pseudo-code:
sumber
Pip , 5 byte
Cobalah online!
sumber
C # (Visual C # Interactive Compiler) , 9 byte
Cobalah online!
sumber
Scala , 7 byte
Cobalah online!
sumber
x=>x-x%1
.Double=>Double
pada kasus ini.05AB1E , 1 byte
Dalam versi lawas (yang ditulis dengan Python), cast to integer builtin berfungsi seperti yang diharapkan untuk memotong nilai desimal.
Cobalah online.
Dalam versi baru 05AB1E (ditulis dalam Elixir) ini hanya berfungsi pada string (meskipun bilangan bulat / desimal / string semua harus dipertukarkan, kecuali mengurutkan lexicographical vs numeric misalnya). Kira saya bisa melaporkan bug ke @Adnan ..
Cobalah online untuk membandingkan input integer / desimal (memberikan hasil yang salah) vs input string (memberikan hasil yang benar).
sumber
ï
berfungsi dengan baik pada non-legacy 05AB1E . Ini input array yang bekerja dengan cara yang aneh.Aheui (esotope) , 9 byte
Cobalah online!
Ide dasar dari jawaban segitiga (atau bahasa lain menggunakan input numerik sebagai bilangan bulat).
Fakta yang menyenangkan.
방망희
(diucapkanbang-mang-heui
(a
dariark
)) terdengar hampir sama방망이
(diucapkanbang-mang-i
(a
dariark
,i
suara sepertiE
), yang berarti kelelawar.Bagaimana cara kerjanya?
방
mengambil angka sebagai bilangan bulat.망
mencetak nilai sebagai angka.희
mengakhiri program.sumber
PowerShell , 19 byte
Cobalah online!
PowerShell secara default melakukan pembulatan bankir , yang merupakan kebalikan dari berapa banyak bahasa yang dibulatkan. Jadi, secara tradisional kami akan gunakan
[Math]::Truncate()
untuk menghilangkan titik desimal dan bagian desimal apa pun dan mencapai pembulatan "ke nol" yang kami minati di sini. Namun, itu agak lama, jadi menggunakan tip ini , kita dapat membulatkan ke nol dengan secara implisit melemparkan input ke string, melakukan regex-replace
untuk menghilangkan periode dan apa pun setelahnya, dan meninggalkan output pada pipeline untuk pencetakan implisit.sumber
Segitiga , 3 byte
Cobalah online!
Triangular mengambil input numerik sebagai integer; nilai desimal apa pun terpotong. Jika dapat diterima hanya meninggalkan input pada tumpukan tanpa mencetaknya, maka solusi ini bisa menjadi:
Segitiga , 1 byte
Cobalah online!
sumber