Число является целым, если оно является неотрицательным целым числом без десятичной части. Так что 0
и так 8
и 233494.0
есть, а 1.1
и так 0.001
и 233494.999
нет.
вход
Число с плавающей точкой в базе по умолчанию / кодировка вашего языка.
Например, целочисленное представление по умолчанию для двоичного лямбда-исчисления будет представлять собой церковные цифры . Но целочисленное представление по умолчанию для Python - это десятичное основание 10 , а не Unary .
Выход
Truthy значение , если вход целое, falsy значение , если это не так .
Обратите внимание, что если ваш язык поддерживает только десятичную точность, скажем, до 8 знаков, 1.000000002
можно считать целым.
Ввод и вывод могут быть выполнены с помощью любых стандартных методов ввода / вывода .
Контрольные примеры
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
счет
Как и в случае с Code-Golf , выигрывает самое короткое представление. Удачи!
Ответы:
APL (Дьялог) , 3 байта
Попробуйте онлайн!
Обратите внимание, что
f←
это было добавлено в ссылку TIO из-за технических ограничений, но обычно это не требуется.источник
floor(n) == abs(n)
.Haskell ,
2716 байтовЭта функция проверяет,
x
содержится ли в списке целых неотрицательных чисел не больше чемx
.Попробуйте онлайн!
источник
Wolfram Language (Mathematica) ,
171514 байтСохранено 1 байт благодаря не дереву!
Попробуйте онлайн!
Первый ответ Mathematica \ о /
Mathematica, 15 байт
Сохранено 2 байта благодаря @ user202729!
источник
Pyth, 4 байта
Тестирование
Число равно (
q
) полу (s
) своего абсолютного значения (.a
)?источник
Шелуха , 3 байта
Попробуйте онлайн! Третий тестовый случай истекает в TIO, поэтому я отрубил пару цифр. Я попытался запустить его локально, но убил его через пару минут, так как он использовал более 6 ГБ памяти и мой компьютер начал заикаться. Это должно теоретически закончиться в какой-то момент ...
объяснение
Это соответствует описанию задачи довольно прямо.
источник
λx → floor(x) == abs(x)
выглядело в шелухе?§=⌊a
так на один байт длиннее.Python 2 , 18 байт
Попробуйте онлайн!
источник
/// , 94 байта, ввод жестко запрограммирован
Попробуйте онлайн!
Ввод между двумя завершающими вертикальными линиями (
||
)Обрезает
-00...0
и.00...0
, преобразует все оставшиеся цифры вx
s, затем проверяет, имеет ли оставшееся число ещеx
s после.
или после него-
не следует.
.Может сэкономить до 7 байт в зависимости от того , что считается truthy и falsey , так как этот язык не имеет собственных значений truthy / falsey, в настоящее время выводит
true
и ,false
но может измениться, например,T
иF
для 87 байт , если это разрешено.источник
Октава , 15 байт
Попробуйте онлайн!
Этот основан на подходе, использованном в ответе @ flawr на Haskell .
Хотя это уменьшает количество байтов до 15, это постыдно неэффективно (без обид), создавая список всех целых чисел от и
0
доx
и проверяя,x
содержится ли оно внутри.Октава , 18 байт
Попробуйте онлайн!
Принимает ввод как число двойной точности. Возвращает true, если целое.
Проверяет, является ли входное значение при округлении равным величине входного значения. Это будет только тот случай, когда число будет положительным и целым.
Октава , 18 байт
Попробуйте онлайн!
Альтернативное решение для 18 байтов. К сожалению,
mod
функция в Octave не будет неявно преобразовывать abool
в adouble
, так что+( )
нужно больше, чем сравнение. В противном случае это решение было бы короче.Октава , 18 байт
Попробуйте онлайн!
И еще один ...
Я не могу получить меньше 18 байт. Все из-за необходимости допустить, чтобы 0 было истинным,>=
а не просто>
.источник
C ++ (gcc) , 33 байта
Попробуйте онлайн!
источник
Ацето , 6 байт
Попробуйте онлайн!
источник
Pyth , 6 байт
Попробуйте онлайн!
источник
QBIC , 17 байт
объяснение
Если любая из проверок завершается неудачно, возвращается 0. Если оба значения верны, возвращается -1 x -1 = 1.
источник
Python 2 и Python 3 ,
2118 байтПопробуйте онлайн! (Py2)
Попробуйте онлайн! (PY3)
3 байта сохранены благодаря Mr. XCoder.
источник
C (gcc),
27282725 байтов-2 благодаря PrincePolka
Попробуйте онлайн!
Определяет макрос «функция»,
g
который принимает параметрf
(любого типа). Затем проверяет, является ли приведение кf mod 1
нулю, и еслиf
оно не отрицательно.источник
include
директивы в ваш счетчик байтов, так как fmod определен вmath.h
: смотрите тамC #, Java: 43 байта
-1 байт благодаря Zacharý
-1 байт благодаря TheLetalCoder
C # имеет специальную 33-байтовую оптимизацию, которую вы не можете сделать в Java:
Для тестирования
Код C #:
Java-код:
источник
return
и(
.bool
и нет необходимости в троичной.bool
не существует в Javareturn(int)n==n
? Или это приведётn==n
к int, а не простоn
?int w(float n){return(int)n!=n|n<0?0:1;}
( 40 байтов ). В Java 8 лямбда-код еще короче:n->(int)n==n&n>=0
( 17 байт ) , и то же самое относится к ответу на C # как лямбда:n=>(int)n==n&n>=0
(также 17 байт ) .Google Sheets, 10 байт
Функция анонимного рабочего листа, которая
A1
сообщает входные данные из ячейки и выводит их в вызывающую ячейку.источник
Пролог (SWI) , 24 байта
Попробуйте онлайн!
источник
Ly ,
3547 байтПопробуйте онлайн!
Ly имеет поддержку float, но единственный способ создать float - это выполнить деление. Нет никакого способа принять float в качестве входных данных, поэтому мне пришлось вместо этого вручную проверять строку.
Потерял 13 байт, добавив поддержку отрицательных чисел.
источник
JavaScript, 14
источник
n=>!(n-(n|0))
(n=>!(n-(n|0)))(-3)
возвращаетсяtrue
, но должен вернутьсяfalse
. Смотрите последний контрольный пример.Perl 5, 11 +1 (-p) байт
-l
Переключатель не учитывается , так как для отображения тестовпопробуйте это онлайн
источник
Perl 6 ,
1513 байтПопробуй это
Попробуй это
источник
Java (OpenJDK 8) , 14 байт
Попробуйте онлайн!
источник
C #,
403729 байтБлагодаря @Dennis_E сэкономлено 8 байт!
Старый ответ (37 байт)
Старый старый ответ (40 байт):
источник
bool z(float x)=>x%1==0&&x>=0;
и вы можете использовать один&
для 29 байтовx=>x%1==0&x>=0
короче и скомпилироватьFunc<float, bool>
JavaScript,
1715 байтСпасибо edc65 за обнаружение моих ошибок.источник
Нерасширенный Sinclair ZX81, 20 байтов
20 байтов, потому что BASIC является токенизированным.
Просто выдаст 1 (true), если число положительное, а значение введенного числа равно его целочисленному значению. Выходы 0 ни одного из этих условий не выполнены.
источник
newline
(\r\n
эквивалент в языке ZX81), пробелы не считаются байтами, поскольку они уже включены в ключевые слова, как правило, из-за системы ввода Sinclair «нажатием одной клавиши». При запуске это займет больше байтов, так как это поместит значениеA
вvar stack
; Я думаю, что каждое числовое значение всегда 5 байтов памяти.C, C ++:
3837 байт-1 байт благодаря Zacharý
-1 байт благодаря возрастанию
Для тестирования
C: попробуйте онлайн
Код C:
Код C ++:
источник
INT_MAX
. (Мне действительно все равно, но некоторым это нравится.)return(int)n==n...
работу?>=0
тест):return(unsigned)n==n;
а в C вы можете опустить возвращаемый тип еще на 4 байта.w(float n){n=n==(int)n&&n>=0;}
JavaScript (Node.js) , 11 байт
Попробуйте онлайн!
источник
J ,
74 байтаУбрана ненужная проверка на отслоение после решения Erik The Outgolfer
Попробуйте онлайн!
источник
Common Lisp,
3632 байтаПопробуйте онлайн!
Транспозиция ответа Мармеладзе .
источник
Символический Питон , 21 байт
Попробуйте онлайн!
Использует связанное сравнение:
_%(_==_) == (_!=_)
проверяет, еслиn%1 == 0
, только истина, еслиn
не имеет десятичной части.(_!=_) <= _
проверяет, если0 <= n
только true, если целое число неотрицательно.источник