Objetivo
Dado um número de entrada, arredonde-o para o número mais próximo com um número significativo.
Exigências
Entrada
- Um número de ponto flutuante.
- Suponha que o número da entrada resulte em uma saída dentro dos limites do tipo de dados (por exemplo, ignore erros de estouro).
- 0 é uma entrada inválida.
- Números que não podem ser representados com precisão no tipo de dados de ponto flutuante (por exemplo,
"0.35"
sendo armazenados como0.3499999
) não precisam ser suportados.
Resultado
- O número mais próximo que consiste em um dígito diferente de zero e qualquer número de zero dígitos.
- O resultado deve suportar números negativos e números fracionários.
- Quando a entrada estiver exatamente entre duas saídas possíveis, arredonde para zero.
Apresentação
O foco está no cálculo, e não na apresentação. A saída pode ser um tipo de dados de ponto flutuante. Pode ser texto na íntegra ou em notação científica. Se você encontrar uma brecha na qual a apresentação de uma certa maneira reduz a contagem de bytes, parabéns!
Exemplos
9
-3000
.2
0.2
-.2
7e12
5e-15
1e0
Casos de teste
Input Output
1 1
10 10
17 20
99 100
54321 50000
56789 60000
-123 -100
-789 -800
0.23 0.2
0.25 0.3
-0.25 -0.3
4.56e23 5e23
4.56e-23 5e-23
Pontuação
O código com o menor número de bytes após uma semana vence.