Sejumlah adalah seluruh jika itu adalah bilangan bulat non-negatif dengan tidak ada bagian desimal. Jadi 0
dan 8
dan 233494.0
utuh, sementara 1.1
dan 0.001
dan 233494.999
tidak.
Memasukkan
Angka titik-mengambang dalam basis / pengodean default bahasa Anda.
Misalnya, representasi bilangan bulat default untuk Binary Lambda Calculus akan menjadi angka Gereja . Tetapi representasi integer default untuk Python adalah basis 10 desimal , bukan Unary .
Keluaran
Sebuah truthy nilai jika input keseluruhan, falsy nilai jika tidak.
Perhatikan bahwa jika bahasa Anda hanya mendukung presisi desimal, katakanlah, 8 tempat, 1.000000002
dapat dianggap keseluruhan.
Input dan output dapat dilakukan melalui metode I / O standar apa pun .
Uji kasus
Input -> Output
332 -> true
33.2 -> false
128239847 -> true
0.128239847 -> false
0 -> true
0.000000000 -> true
1.111111111 -> false
-3.1415926 -> false
-3 -> false
Mencetak gol
Seperti halnya kode-golf , pengiriman terpendek menang. Semoga berhasil!
Jawaban:
APL (Dyalog) , 3 byte
Cobalah online!
Catatan yang
f←
telah ditambahkan di tautan TIO karena keterbatasan teknis, tetapi biasanya tidak diperlukan.sumber
floor(n) == abs(n)
.Haskell ,
2716 byteFungsi ini memeriksa apakah
x
terdapat dalam daftar bilangan bulat tidak negatif yang tidak lebih besar darix
.Cobalah online!
sumber
Bahasa Wolfram (Mathematica) ,
171514 byteDisimpan 1 byte berkat Not a tree!
Cobalah online!
Jawaban pertama Mathematica \ o /
Mathematica, 15 byte
Disimpan 2 byte berkat @ user202729!
sumber
Pyth, 4 byte
Suite uji
Apakah angka sama dengan (
q
) ke lantai (s
) dari nilai absolutnya (.a
)?sumber
Sekam , 3 byte
Cobalah online! Case test ketiga habis di TIO, jadi saya memotong beberapa digit. Saya mencoba menjalankannya secara lokal, tetapi membunuhnya setelah beberapa menit karena menggunakan lebih dari 6GB memori dan komputer saya mulai gagap. Secara teoritis harus selesai di beberapa titik ...
Penjelasan
Ini sesuai dengan deskripsi tantangan secara langsung.
sumber
λx → floor(x) == abs(x)
seperti apa kulit Husk?§=⌊a
, jadi satu byte lebih lama.Python 2 , 18 byte
Cobalah online!
sumber
/// , 94 byte, masukan kode keras
Cobalah online!
Input antara dua garis vertikal terminating (
||
)Strip
-00...0
dan.00...0
, konversikan semua digit yang tersisa menjadix
s, lalu uji apakah angka yang tersisa masihx
setelah.
atau-
tidak diikuti oleh.
.Bisa menghemat hingga 7 byte tergantung pada apa yang dianggap sebagai kebenaran dan falsey karena bahasa ini tidak memiliki nilai-nilai kebenaran / falsey asli, saat ini menghasilkan
true
danfalse
tetapi dapat berubah menjadi, misalnya,T
danF
untuk 87 byte jika diizinkan.sumber
Oktaf , 15 byte
Cobalah online!
Yang ini didasarkan pada pendekatan yang digunakan dalam jawaban Haskell @ flawr .
Sementara itu membawa hitungan byte ke 15, itu memalukan tidak efisien (tidak ada pelanggaran yang dimaksudkan), membuat daftar setiap bilangan bulat dari
0
kex
dan melihat apakahx
terdapat di dalamnya.Oktaf , 18 byte
Cobalah online!
Mengambil input sebagai angka presisi ganda. Mengembalikan nilai true jika keseluruhan.
Cek apakah input ketika dibulatkan sama dengan besarnya input. Ini hanya akan menjadi kasus ketika jumlahnya positif dan utuh.
Oktaf , 18 byte
Cobalah online!
Solusi alternatif untuk 18 byte. Sayangnya
mod
fungsi dalam Oktaf tidak akan secara implisit mengkonversibool
kedouble
, jadi+( )
diperlukan sekitar lebih besar daripada perbandingan. Kalau tidak, solusi ini akan lebih pendek.Oktaf , 18 byte
Cobalah online!
Dan satu lagi ...
Sepertinya saya tidak bisa mendapatkan lebih rendah dari 18 byte. Semua karena harus membiarkan 0 benar dengan>=
bukan hanya>
.sumber
C ++ (gcc) , 33 byte
Cobalah online!
sumber
Aceto , 6 byte
Cobalah online!
sumber
Pyth , 6 byte
Cobalah online!
sumber
QBIC , 17 byte
Penjelasan
Jika salah satu centang gagal, ini mengembalikan 0. Jika keduanya benar, ia mengembalikan -1 x -1 = 1
sumber
Python 2 dan Python 3 ,
2118 byteCobalah online! (Py2)
Cobalah online! (Py3)
3 byte disimpan berkat Tn. XCoder.
sumber
C (gcc),
27282725 byteTerima kasih kepada PrincePolka
Cobalah online!
Menentukan "fungsi" makro
g
yang mengambil parameterf
(jenis apa pun). Kemudian periksa apakah castingf mod 1
adalah nol, dan jikaf
non-negatif.sumber
include
arahan dalam jumlah byte Anda, karena fmod didefinisikan dalammath.h
: lihat di sanaC #, Jawa: 43 byte
-1 byte berkat Zacharý
-1 byte berkat TheLetalCoder
C # memiliki optimasi 33 byte khusus yang tidak dapat Anda lakukan di java:
Untuk pengujian
Kode C #:
Kode Java:
sumber
return
dan(
.bool
dan tidak perlu untuk ternary.bool
tidak ada di Jawareturn(int)n==n
? Atau akankah itu dilemparkann==n
ke int daripada hanyan
?int w(float n){return(int)n!=n|n<0?0:1;}
( 40 byte ). Sebagai Java 8 lambda itu bahkan lebih pendek:n->(int)n==n&n>=0
( 17 byte ) , dan hal yang sama berlaku untuk jawaban C # seperti lambda:n=>(int)n==n&n>=0
(juga 17 byte ) .Google Sheets, 10 Bytes
Fungsi lembar kerja anonim yang mengisahkan input dari sel
A1
dan output ke sel panggilan.sumber
Prolog (SWI) , 24 byte
Cobalah online!
sumber
Ly ,
3547 byteCobalah online!
Ly memiliki dukungan float, tetapi satu-satunya cara untuk membuat float saat ini adalah dengan melakukan pembagian. Tidak ada cara untuk mengambil float sebagai input, jadi saya harus memeriksa string secara manual.
Kehilangan 13 byte menambahkan dukungan untuk angka negatif.
sumber
JavaScript, 14
sumber
n=>!(n-(n|0))
(n=>!(n-(n|0)))(-3)
kembalitrue
, tetapi harus kembalifalse
. Lihat test case terakhir.Perl 5, 11 +1 (-p) byte
Itu
-l
saklar tidak dihitung karena untuk tampilan tescoba online
sumber
Perl 6 ,
1513 byteMenguji
Menguji
sumber
Java (OpenJDK 8) , 14 byte
Cobalah online!
sumber
C #,
403729 byteDisimpan 8 byte berkat @Dennis_E!
Jawaban Lama (37 byte)
Jawaban lama lama (40 byte):
sumber
bool z(float x)=>x%1==0&&x>=0;
dan Anda dapat menggunakan satu&
untuk 29 bytex=>x%1==0&x>=0
lebih pendek dan kompilasi keFunc<float, bool>
JavaScript,
1715 byteTerima kasih kepada edc65 karena menangkap kesalahan saya.sumber
Sinclair ZX81 yang tidak dikembangkan, 20 byte
20 byte karena BASIC adalah tokenized.
Cukup akan menghasilkan 1 (benar) jika angka positif dan nilai angka yang dimasukkan sama dengan nilai integernya. Output 0 salah satu dari kondisi tersebut tidak terpenuhi.
sumber
newline
(\r\n
setara dengan ZX81 berbicara), spasi putih tidak dihitung sebagai byte karena sudah termasuk dalam kata kunci biasanya karena sistem entri Sinclair 'one-key-press' Sinclair. Saat berjalan, itu akan membutuhkan lebih banyak byte karena akan menempatkan nilaiA
kevar stack
; Saya pikir setiap nilai numerik selalu 5 byte memori.C, C ++:
3837 byte-1 byte terima kasih kepada Zacharý
-1 byte berkat ceilingcat
Untuk Pengujian
C: Coba online
Kode C:
Kode C ++:
sumber
INT_MAX
. (Saya tidak terlalu peduli tetapi beberapa orang juga.)return(int)n==n...
berfungsi?>=0
pengujian):return(unsigned)n==n;
Dan di C, Anda dapat menghilangkan tipe pengembalian untuk 4 byte lebih lanjut.w(float n){n=n==(int)n&&n>=0;}
JavaScript (Node.js) , 11 byte
Cobalah online!
sumber
J ,
74 byteMenghapus cek celing yang tidak perlu setelah solusi Erik The Outgolfer
Cobalah online!
sumber
Common Lisp,
3632 byteCobalah online!
Transposisi jawaban marmeladze .
sumber
Python Simbolik , 21 byte
Cobalah online!
Menggunakan perbandingan berantai:
_%(_==_) == (_!=_)
memeriksa apakahn%1 == 0
, hanya benar jikan
tidak memiliki bagian desimal.(_!=_) <= _
memeriksa apakah0 <= n
, hanya benar jika bilangan bulat adalah non-negatif.sumber