Esta é uma tarefa simples. Dado um número real positivo ou negativo, arredonde-o para o próximo inteiro inteiro mais próximo de zero.
O desafio
Receba informações através de qualquer forma razoável (stdin, função etc.) de um número real positivo ou negativo.
Arredonde esse número "para zero" - isso significa que, se for positivo, você arredondará para baixo e, se for negativo, arredondará para cima.
Retorne o número ou envie-o para o console.
Casos de teste
1.1 => 1
-1.1 => -1
500.4 => 500
-283.5 => -283
50 => 50
-50 => -50
Regras
Isso é código-golfe , portanto, menos pontuação em bytes vence.
Esteja atento às brechas padrão .
Diverta-se! mais desafios de Jimmy em breve
code-golf
number
rational-numbers
conecte seu carregador
fonte
fonte
3.00
para3.14
?0.01
e-0.01
deve render0
...Respostas:
Geléia , 1 byte
Um programa completo (como um link monádico, ele retorna uma lista de comprimento um).
Experimente online!
Quão?
fonte
Python 3 , 3 bytes
Experimente online!
Trunca os dígitos após o ponto decimal.
NOTA: Esta é uma resposta trivial. Por favor, dê uma olhada nas outras respostas antes da votação
fonte
Python 2 , 3 bytes
Experimente online!
fonte
Perl 5
-p056l15
, 2 bytesExperimente online!
Como isso funciona?
Ou se você preferir uma resposta mais tradicional:
Perl 5 , 6 bytes
Experimente online!
fonte
\n
, é\r
.\n
seria 12. Parece o mesmo no TIO, no entanto.-Minteger
-p
$_/=1
Labirinto e Hexagonia , 3 bytes
Obrigado a FryAmTheEggman por apontar que eu escrevi um pouco de Hexagony!
Experimente online! & Experimente online!
Quão?
Labirinto e Hexagonia dirão o mais cedo possível! ...
fonte
IO@
no Backhand funciona da mesma maneira e&.@
no Befunge. Provavelmente um monte de línguas com entrada inteiro, e somente inteiro manuseio será o mesmobrainfuck , 26 bytes
Experimente online!
Saídas à direita
.
se o número for decimalNão há muito golfe específico, exceto que, em vez de subtrair 46 para verificar se um personagem é a
.
, eu adiciono 5 e multiplico por 5 para obter 255, depois adiciono mais um para rolar para zero. Subtrair 3, multiplicar por 6 e subtrair 2 é o mesmo por contarfonte
C (tcc),
39.2110 bytesFiquei realmente surpreso que ninguém pensou em usar C.
Esta não é uma função de identidade como parece ser. O tipo implícito int da função f trunca o ponto flutuante.
TIO
Menos provável de enganar as pessoas, mas tem um comprimento de bytes mais curto:
TIO
fonte
float
pois ele usa um registro diferente para inserir valores de ponto flutuante.J , 6 bytes
Experimente online!
Sinal
*
vezes*
o arredondamento para baixo<.
do valor absoluto@|
fonte
Perl 6 , 4 bytes
Função anônima.
Experimente online!
fonte
Java (OpenJDK 8) ,
15 bytes9 bytesExperimente online!
graças a @ kevin-cruijssen
fonte
(int)
. E aqui uma alternativa divertida de 15 bytes usando uma referência de método. :)Excel, 10 bytes
TRUNC
trunca um número para um número inteiro removendo a parte fracionária do número.fonte
R ,
135 bytesObrigado Robin Ryder
Experimente online!
fonte
Retina 0.8.2 , 5 bytes
Experimente online! O link inclui casos de teste.
fonte
Ruby , 11 bytes
Eu escolhi essa porque se distingue das lambdas que os jogadores de Ruby normalmente usam (felizmente, tinha o mesmo número de bytes que a solução "tradicional"):
Experimente online!
fonte
ReRegex , 12 bytes
Experimente online!
ReRegex é uma linguagem de programação que corresponde e substitui repetidamente até que não haja correspondências.
fonte
JavaScript, 6 bytes
Experimente online!
JavaScript, 8 bytes
O uso interno é de 2 bytes mais ...
Experimente online!
fonte
x=>~~x
? Ainda 6 bytes embora.K (oK) , 3 bytes
Experimente online!
fonte
Código da máquina FPU Intel 8087, 14 bytes
A entrada é um valor único de precisão em um local de memória
A
(aDD
), a saída é um valor inteiro no local de memóriaB
(aDW
).O 8087 deve primeiro ser colocado no modo zero, definindo a palavra de controle (
0F7FH
). Em seguida, carregue o valor do ponto flutuante e armazene de volta em um número inteiro.fonte
Vermelho , 4 bytes
Experimente online!
Apenas converte o float em um número inteiro (conversão por protótipo)
fonte
Zsh , 10 bytes
xor
com 0. Me deparei com isso durante outro desafio recentemente . Experimente online!Não funciona no Bash ou no POSIX sh (traço).
fonte
V (vim) , 4 bytes
Experimente online!
Obrigado @DJMcMayhem , 1 byte salvo.
fonte
Barril ,
191713 bytesIsso gera alguns caracteres não imprimíveis à direita. Além disso, isso sai com um erro. (Agora precisamos de entrada invertida!)
fonte
Espaço em branco (com compilador vii5ard ),
1817 bytesLetras
S
(espaço),T
(guia) eN
(nova linha) adicionadas apenas como destaque.[..._some_action]
adicionado apenas como explicação.Experimente online. Você precisará copiar e colar o código sozinho (observe que o SE converte as guias em vários espaços!) Para executar o código no vii5ard do Whitespace-compilador on-line. Ao clicar em executar, ele solicitará uma entrada (ou seja
-285.5
) e, após clicar em entrar, continuará e emitirá-283
.Explicação em pseudo-código:
O espaço em branco só pode usar E / S como números inteiros ou caracteres únicos; portanto, nesse caso, ele leria a entrada como número inteiro e ignoraria quaisquer outros caracteres finais.
-283.5
Ou seja, ou-283abc5
ambos seriam inseridos (e, portanto, gerados) como-283
.Infelizmente, isso acima não funciona no TIO por dois motivos (todos os compiladores do Whitespace são um pouco diferentes ..):
no parse
erro quando tentarmos ler uma entrada como número inteiro, que não é um número inteiro válido. Então, em vez disso, leremos um caractere de cada vez e pararemos (com um erro) assim que encontrarmos a.
ou não houver mais entrada (por exemplo,50
/-50
).SSN
, enquanto no TIO ele requer um adicionalS
ouT
:SSSN
/SSTN
. O primeiroS
é Habilitar manipulação de pilha ; o segundoS
é Empurre o que segue como inteiro ; o terceiroS
/T
é positivo / negativo, respectivamente; e qualquerS
/T
depois disso (seguido de umN
) é o número que queremos inserir no binário, ondeS=0
eT=1
. Para o número 0, essa parte binária não importa, pois é 0 por padrão. Mas no TIO ainda teríamos que especificar o positivo / negativo e, com a maioria dos outros compiladores do Whitespace, como o vii5ard, não.Espaço em branco (com compilador TIO ), 48 bytes
Letras
S
(espaço),T
(guia) eN
(nova linha) adicionadas apenas como destaque.[..._some_action]
adicionado apenas como explicação.Experimente online (apenas com espaços brutos, guias e novas linhas).
Explicação em pseudo-código:
fonte
Pip , 5 bytes
Experimente online!
fonte
C # (compilador interativo do Visual C #) , 9 bytes
Experimente online!
fonte
Scala , 7 bytes
Experimente online!
fonte
x=>x-x%1
.Double=>Double
nesse caso.05AB1E , 1 byte
Na versão herdada (escrita em Python), a conversão para o número inteiro interno funciona conforme o esperado para truncar os valores decimais.
Experimente online.
Na nova versão do 05AB1E (escrita em Elixir), ela funciona apenas em strings (mesmo que números inteiros / decimais / strings devam ser intercambiáveis, a menos que seja possível classificar lexicográfico x numérico, por exemplo). Acho que posso relatar um erro para @Adnan ..
Experimente on-line para comparar entradas inteiras / decimais (fornecendo resultado incorreto) versus entradas de string (fornecendo resultados corretos).
fonte
ï
funciona bem no 05AB1E não herdado . É entrada de matriz que funciona de uma maneira estranha.Aheui (esótopo) , 9 bytes
Experimente online!
A idéia básica da resposta triangular (ou qualquer outro idioma aceita a entrada numérica como número inteiro).
Fato engraçado.
방망희
(pronunciadobang-mang-heui
(a
deark
)) soa quase o mesmo que방망이
(pronunciadobang-mang-i
(a
deark
,i
soa comoE
)), que significa morcego.Como isso funciona?
방
toma o número como inteiro.망
imprime valor como número.희
finaliza o programa.fonte
PowerShell , 19 bytes
Experimente online!
O PowerShell, por padrão, faz o arredondamento dos banqueiros , que é praticamente o oposto de quantos outros idiomas fazem o arredondamento. Portanto, tradicionalmente usamos o
[Math]::Truncate()
strip decimal e qualquer parte decimal e atingimos o arredondamento "para zero" em que estamos interessados aqui. No entanto, isso é um pouco longo, portanto, usando essa dica , podemos arredondar para zero, lançando implicitamente a entrada em uma sequência de caracteres, executando um regex-replace
para se livrar do período e de qualquer coisa após ele e deixando a saída no pipeline para impressão implícita.fonte
Triangular , 3 bytes
Experimente online!
Triangular recebe a entrada numérica como um número inteiro; quaisquer valores decimais são truncados. Se for aceitável deixar a entrada na pilha sem imprimi-la, esta solução pode ser:
Triangular , 1 byte
Experimente online!
fonte