Liczba jest całkowita, jeśli jest nieujemną liczbą całkowitą bez części dziesiętnej. Więc 0
i 8
i 233494.0
są w całości, natomiast 1.1
a 0.001
i 233494.999
nie są.
Wkład
Liczba zmiennoprzecinkowa w domyślnej podstawie / kodowaniu twojego języka.
Na przykład domyślną reprezentacją liczb całkowitych dla Binary Lambda Calculus byłyby liczby kościelne . Ale domyślną reprezentacją liczb całkowitych dla Pythona jest dziesiętny dziesiętny , a nie Unary .
Wydajność
Truthy wartość jeśli wejście jest całość, falsy wartość, jeśli tak nie jest.
Pamiętaj, że jeśli twój język obsługuje tylko precyzję dziesiętną, powiedzmy 8 miejsc, 1.000000002
można uznać za cały.
Wejścia i wyjścia można wykonać dowolnymi standardowymi metodami We / Wy .
Przypadki testowe
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
Punktacja
Podobnie jak w przypadku golfa kodowego , wygrywa najkrótsza przesyłka. Powodzenia!
Odpowiedzi:
APL (Dyalog) , 3 bajty
Wypróbuj online!
Pamiętaj, że
f←
został dodany do linku TIO z powodu ograniczeń technicznych, ale zwykle nie jest potrzebny.źródło
floor(n) == abs(n)
.Haskell ,
2716 bajtówTa funkcja sprawdza, czy
x
znajduje się na liście liczb całkowitych nieujemnych, które nie są większe niżx
.Wypróbuj online!
źródło
Wolfram Language (Mathematica) ,
171514 bajtówZaoszczędzono 1 bajt dzięki Not a tree!
Wypróbuj online!
Pierwsza odpowiedź Mathematica \ o /
Mathematica, 15 bajtów
Zaoszczędzono 2 bajty dzięki @ user202729!
źródło
Pyth, 4 bajty
Zestaw testowy
Czy liczba jest równa (
q
) wartości dolnej (s
) jej wartości bezwzględnej (.a
)?źródło
Łuska , 3 bajty
Wypróbuj online! Trzeci przypadek testowy kończy się w TIO, więc odciąłem kilka cyfr. Próbowałem uruchomić go lokalnie, ale zabiłem go po kilku minutach, ponieważ zużywał ponad 6 GB pamięci, a mój komputer zaczął się zacinać. W pewnym momencie powinien teoretycznie zakończyć się ...
Wyjaśnienie
Odpowiada to opisowi wyzwania całkiem bezpośrednio.
źródło
λx → floor(x) == abs(x)
wyglądałby Husk?§=⌊a
, więc o jeden bajt dłużej.Python 2 , 18 bajtów
Wypróbuj online!
źródło
/// , 94 bajty, wejście zakodowane na stałe
Wypróbuj online!
Wejście między dwoma kończącymi się liniami pionowymi (
||
)Paski
-00...0
i.00...0
konwertuje wszystkie pozostałe cyfry nax
s, a następnie sprawdza, czy pozostała liczba wciąż max
s po,.
czy-
nie.
.Można zapisać maksymalnie 7 bajtów w zależności od tego, co jest traktowane jako truthy i falsey ponieważ język ten nie posiada natywne wartości truthy / falsey, obecnie jest wyprowadzanie
true
afalse
jednak mogą się zmienić, na przykład,T
iF
dla 87 bajtów, jeśli to dozwolone.źródło
Oktawa , 15 bajtów
Wypróbuj online!
Ten oparty jest na podejściu zastosowanym w odpowiedzi Haskell @ flawr .
Choć przynosi liczbę bajtów w dół do 15, to jest haniebnie nieefektywne (bez obrazy przeznaczone), tworząc listę wszystkich całkowitą od
0
celux
i zobaczyć, czyx
znajduje się wewnątrz.Oktawa , 18 bajtów
Wypróbuj online!
Pobiera dane wejściowe jako liczbę podwójnej precyzji. Zwraca true, jeśli całość.
Sprawdza, czy wejście po zaokrągleniu jest równe wielkości wejścia. Będzie tak tylko wtedy, gdy liczba będzie dodatnia i całkowita.
Oktawa , 18 bajtów
Wypróbuj online!
Alternatywne rozwiązanie dla 18 bajtów. Niestety
mod
funkcja w Octave nie będzie domyślnie konwertować abool
na adouble
, więc+( )
jest ona potrzebna wokół porównania większego niż. W przeciwnym razie to rozwiązanie byłoby krótsze.Oktawa , 18 bajtów
Wypróbuj online!
I jeszcze jeden ...
Nie mogę uzyskać mniej niż 18 bajtów. Wszystko z powodu konieczności dopuszczenia, aby 0 było prawdziwe z>=
zamiast zamiast sprawiedliwego>
.źródło
C ++ (gcc) , 33 bajty
Wypróbuj online!
źródło
Aceto , 6 bajtów
Wypróbuj online!
źródło
Pyth , 6 bajtów
Wypróbuj online!
źródło
QBIC , 17 bajtów
Wyjaśnienie
Jeśli jedno z testów się nie powiedzie, to zwraca 0. Jeśli oba są prawdziwe, zwraca -1 x -1 = 1
źródło
Python 2 i Python 3 ,
2118 bajtówWypróbuj online! (Py2)
Wypróbuj online! (Py3)
3 bajty zapisane dzięki Mr. XCoder.
źródło
C (gcc),
27282725 bajtów-2 dzięki PrincePolka
Wypróbuj online!
Definiuje „funkcję” makra,
g
która przyjmuje parametrf
(dowolnego typu). Następnie sprawdza, czy rzutowanief mod 1
wynosi zero, a jeślif
nie jest ujemny.źródło
include
dyrektywy w swojej liczbie bajtów, ponieważ fmod jest zdefiniowany wmath.h
: patrzC #, Java: 43 bajty
-1 bajt dzięki Zacharý
-1 bajt dzięki TheLetalCoder
C # ma specjalną optymalizację 33 bajtów, której nie można wykonać w Javie:
Dla testów
Kod C #:
Kod Java:
źródło
return
i(
.bool
i nie ma potrzeby trójki.bool
nie istnieje w Javiereturn(int)n==n
? Czy może to rzuciłobyn==n
się na int, a nie tylkon
?int w(float n){return(int)n!=n|n<0?0:1;}
( 40 bajtów ). Jako Java 8 lambda jest jeszcze krótszy:n->(int)n==n&n>=0
( 17 bajtów ) , to samo dotyczy odpowiedzi C # jak lambda:n=>(int)n==n&n>=0
(również 17 bajtów ) .Arkusze Google, 10 bajtów
Anonimowa funkcja arkusza roboczego, która bada dane wejściowe z komórki
A1
i dane wyjściowe do komórki wywołującej.źródło
Prolog (SWI) , 24 bajty
Wypróbuj online!
źródło
Ly ,
3547 bajtówWypróbuj online!
Ly ma obsługę float, ale obecnie jedynym sposobem na utworzenie float jest wykonanie podziału. Nie ma sposobu, aby wziąć zmiennoprzecinkowe jako dane wejściowe, więc zamiast tego musiałem ręcznie sprawdzić ciąg.
Utracono 13 bajtów, dodając obsługę liczb ujemnych.
źródło
JavaScript, 14
źródło
n=>!(n-(n|0))
(n=>!(n-(n|0)))(-3)
zwracatrue
, ale powinien wrócićfalse
. Zobacz ostatni przypadek testowy.Perl 5, 11 +1 (-p) bajtów
-l
Przełącznik nie liczy się, ponieważ do wyświetlania testówspróbuj online
źródło
Perl 6 ,
1513 bajtówSprawdź to
Sprawdź to
źródło
Java (OpenJDK 8) , 14 bajtów
Wypróbuj online!
źródło
C #,
403729 bajtówZaoszczędź 8 bajtów dzięki @Dennis_E!
Stara odpowiedź (37 bajtów)
Stara stara odpowiedź (40 bajtów):
źródło
bool z(float x)=>x%1==0&&x>=0;
możesz użyć jednego&
dla 29 bajtówx=>x%1==0&x>=0
jest krótszy i można go kompilować doFunc<float, bool>
JavaScript,
1715 bajtówDzięki edc65 za złapanie moich błędów.źródło
Nierozwinięty Sinclair ZX81, 20 bajtów
20 bajtów, ponieważ BASIC jest tokenizowany.
Po prostu wyświetli 1 (prawda), jeśli liczba jest dodatnia, a wartość wprowadzonej liczby jest równa jej wartości całkowitej. Wyjścia 0 jeden z tych warunków nie jest spełniony.
źródło
newline
(\r\n
odpowiednik w mówieniu ZX81), białe znaki nie liczą się jako bajty, ponieważ są one już zawarte w słowach kluczowych, zwykle ze względu na system wprowadzania Sinclair „jednym naciśnięciem klawisza”. Podczas działania zajmie więcej bajtów, ponieważ umieści wartośćA
navar stack
; Myślę, że każda wartość liczbowa to zawsze 5 bajtów pamięci.C, C ++:
3837 bajtów-1 bajt dzięki Zacharý
-1 bajt dzięki pułapkowi cat
Dla testów
C: Wypróbuj online
Kod C:
Kod C ++:
źródło
INT_MAX
. (Nie obchodzi mnie to, ale niektórzy to robią.)return(int)n==n...
działała?>=0
testu):return(unsigned)n==n;
A w C możesz pominąć typ zwrotu dla kolejnych 4 bajtów.w(float n){n=n==(int)n&&n>=0;}
JavaScript (Node.js) , 11 bajtów
Wypróbuj online!
źródło
J ,
74 bajtyUsunięto niepotrzebną kontrolę celowania po rozwiązaniu Erika The Outgolfer
Wypróbuj online!
źródło
Common Lisp,
3632 bajtówWypróbuj online!
Transpozycja odpowiedzi marmeladze .
źródło
Symboliczny Python , 21 bajtów
Wypróbuj online!
Wykorzystuje powiązane porównanie:
_%(_==_) == (_!=_)
sprawdza, czyn%1 == 0
tylko prawda, jeślin
nie ma części dziesiętnej.(_!=_) <= _
sprawdza, czy jest0 <= n
prawdą tylko wtedy, gdy liczba całkowita jest nieujemna.źródło