Ao escrever programas de código-golfe , geralmente acabo usando algumas constantes numéricas. Eu sempre os coloco em decimal, porque é assim que penso, mas acabei de perceber que meu idioma suporta outros formatos de números que podem me permitir diminuir um pouco meu código.
Desafio
Dado um número inteiro não negativo menor que 2 ^ 53-1, decida se esse número inteiro tem a menor representação em:
- Decimal
- Hexadecimal
- Notação científica
Decimal
Como esse é o formato padrão do meu idioma, não há notação extra necessária para esse formato. Cada número é representado como de costume para decimal.
Hexadecimal
Meus idiomas usa o 0x
prefixo para constantes hexadecimais. Isso significa que, se um número tiver 4 dígitos hexadecimais, serão necessários 6 bytes para representar esse número.
Notação científica
Meu idioma usa o seguinte formato para notação científica:
[Base real] e [Expoente inteiro de 10]
Por exemplo, 700
seria representado como 7e3
e 699
seria representado como 6.99e3
, porque a base deve estar entre -10 e 10 (não inclusivo). Para os propósitos deste desafio, a base sempre será pelo menos 0, pois o número inserido não é negativo.
Saída
Você deve retornar uma maneira de identificar qual formato é mais curto (ou seja, 0 para decimal, 1 para hexadecimal, 2 para científico). Como alternativa, você pode gerar a menor representação do número em si.
Casos de teste
Decimal | Hexadecimal | Scientific | Winner
--------------|--------------|-------------------|-------------
0 | 0x0 | 0e0 | Decimal
15 | 0xF | 1.5e1 | Decimal
6999 | 0x1B57 | 6.999e3 | Decimal
7000 | 0x1B58 | 7e3 | Scientific
1000000000000 | 0xE8D4A51000 | 1e12 | Scientific
1000000000001 | 0xE8D4A51001 | 1.000000000001e12 | Hexadecimal
1000000001000 | 0xE8D4A513E8 | 1.000000001e12 | Hexadecimal
1000001000000 | 0xE8D4B45240 | 1.000001e12 | Scientific
Pontuação
Isso é código-golfe , então a resposta nos bytes mais curtos para cada idioma vence.
double
. Apenas uma sugestão; Faça o que achar melhor
1000001000000
Também pode ser escrito como 1000001e6
se.
2^63-1
pode ser difícil para alguns idiomas. Considere relaxante que para um valor inferior, tal como2^32-1
(de modo que os valores se encaixam em um tipo de dados de ponto flutuante duplo)