Hexadecimal é um sistema de contagem de base 16 que vai de 0
para f
. Seu trabalho é fazer um contador que mostre esses números.
Exemplo:
$ python counter.py
1 2 3 4 5 6 7 8 9 a b c d e f 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f 30
Regras:
- Os números podem ser separados por espaços, tabulações ou novas linhas.
- O número mínimo para o qual você deve ir é
30
(48 em decimal).- Você também pode fazer o programa imprimir números para sempre até que seja interrompido.
- As letras podem estar em maiúsculas ou minúsculas (
A
oua
). - Não são permitidas funções internas (que afetam diretamente as conversões / contagens hexadecimais).
- Zeros à esquerda são permitidos
- Pode começar a partir de
1
ou0
- O menor código vence!
code-golf
hexadecimal
Estágio
fonte
fonte
Respostas:
Pitão - 12 bytes
Usa produto cartesiano e classifica no final para obter a ordem correta e depois se junta por espaços. Imprime
00-ff
inclusive.Experimente online aqui .
fonte
Pure Bash , 26
Contagens de 0x0 a 0x3F:
Experimente online!
fonte
CJam,
2114 bytesImprime os números de 00 a 9F.
Experimente on-line no intérprete CJam .
Como funciona
fonte
Python 2, 52
Imprime
00
em3F
. Aproveita o fato de o primeiro dígitoa
ser sempre um número nesse intervalo. Faz um loop através de quatro ciclos do segundo dígitob
, incrementandoa
sempre que o segundo dígito éF
.Este é um caractere mais curto que o mais direto
fonte
n ='0123'
deve salvar alguns caracteresthing in n + restofstring
n='0123' for a in n: for b in n+'456789ABCDEF':print a+b
0123
outra coisa não é suficiente.JavaScript (ES6), 57 bytes
A mesma abordagem que as do Python, suponho.
fonte
TI-Basic, 63 bytes
São 63 bytes, de acordo com a tela de gerenciamento de memória da minha calculadora, uma TI-84 +. Certifique-se de iniciar o programa com uma tela inicial parcialmente cheia!
fonte
Befunge-93, 57 bytes
Imprime números de
00
até8F
. Se você prefere que seus programas sejam executados para sempre, a versão abaixo não termina e gera continuamente todos os números de00
atéFF
.fonte
0123456789ABCDEF01g::88+/2-0g,88+%0g,9,1+01p
bef.c
) que ignora silenciosamente comandos desconhecidos (ABCDEF
).30
- esta transbordará lentamente a pilha, então suponho que exista algum ponto de terminação. Além disso, a saída é separada por tabulação; o OP disse que estava tudo bem. ) Ah, a implementação do Befunge usada também deve inicializar todo o toro de 80x25 com espaços (ASCII0x20
).C,
7875 bytesDefinimos uma função
f()
a ser chamada sem argumentos para impressão e uma função auxiliarx(int)
. Isso quebra emFF
.Surpreendentemente, esse é um byte menor que o mais óbvio:
Aviso: não é recomendável executar esse código fora de um ambiente de depuração ...
Teste:
Resultado:
Obviamente, a abordagem mais robusta (e enganosa) é essa função de 34 bytes:
fonte
return y+
poderia sery+=
.Pitão, 17 bytes
Experimente aqui
Como funciona:
fonte
jb^+jkUT<G6 2
usa o produto cartesiano de fazer a mesma coisa, ainda parece golfable ...Javascript ES6,
6762 bytesfonte
J, 22 bytes
Conta para
ff
. Imprime uma nova linha extra entre cada bloco de0x10
números, da seguinte forma:fonte
Caxumba - 65 bytes
Não ... A caxumba ainda não está morta! :-)
fonte
CJam, 22 bytes
Isso dura para sempre e, portanto, é provavelmente um dos raros momentos em que é uma boa ideia não incluir um link permanente.
fonte
oNo
é o mesmo quen
no TIO.TheC64Mini e Commodore BASIC (C64 / 128, PET, VIC-20, C16 / + 4) - 164 bytes BASIC e tokenizados usados
Imprime um espaço duplo após o número hexadecimal para alinhar bem a impressão nas colunas 40/80 e nas 22 colunas na VIC-20.
fonte
brainfuck , 2902 bytes
Fácil de superar, mas vale a pena tentar
Experimente online!
fonte
0-F
e depois codificasse a impressão. Como você conseguiu durar tanto tempo?Python 2,
6655 bytesEsta deveria realmente ter sido a abordagem mais óbvia para mim ..
Antigo (66 bytes) : Tecnicamente, isso causa um erro depois
FF
, mas atinge30
.Presumi que a formatação de string não era permitida, pois tenho certeza de que passaria pela conversão de base, mas se fosse permitido, seriam 29 bytes:
fonte
Java, 104 bytes
Se o
i<99
for removido, ele ainda alcançará 30, mas eventualmente trava. Não tenho certeza se isso é aceitável.fonte
J, 47 bytes
imprime 00 a ff
fonte
>{;~'0123456789abcdef'
Javascript
74726560fonte
Perl 6 , 34 bytes
O mais curto que posso apresentar que não usa nenhum tipo de conversão é:
imprime
00
...FF
espaço separado em ordem.Se você quiser mais, pode trocar
2
por um número maior.(não use um número maior que 4, pois concatena os valores antes de produzir qualquer coisa, para usar uma quantidade significativa de RAM)
O mais curto que nunca para de escrever valores hexadecimais
Se
printf
fosse permitidoSe uma função de conversão básica fosse permitida
fonte
C ++ 14 - 135
fonte
'string' is not a member of 'std'
com o meu.cout
também. Eu acho que vocêiostream
também precisa . 2. Imprime os números sem separação. O desafio requer espaços, guias ou novas linhas. 3. Você deve mencionar a versão exigida do C ++.jq 1.5:
6559 caracteres(Código de 56 caracteres + opção de linha de comando de 3 caracteres.)
Exemplo de execução:
Teste on-line (a passagem do
-r
URL não é suportada - verifique você mesmo Raw Output.)jq 1.5: 56 caracteres
(Código de 53 caracteres + opção de linha de comando de 3 caracteres.)
Isso produz uma saída correta, no entanto, não é exatamente um contador: ele não gera os valores em ordem, apenas os classifica depois.
Teste on-line (a passagem do
-r
URL não é suportada - verifique você mesmo Raw Output.)fonte
Dyalog APL , 12 bytes
fonte
Malbolge , 900 bytes
Ser melhorado...
Experimente online!
fonte
Zsh,
4429 bytes-15 , via GammaFunction experimente online!
Original (44 bytes):
g=0123456789abcdef;h=(${(s::)g});echo $^h$^h
fonte
h=({0..9} {a..f})
. 29 bytesPowerShell 6, 40 bytes
Experimente online!
Inicia
00
e conta atéFF
.fonte
8088 Assembly, IBM PC DOS, 34 bytes
Bytes
xxd
:Desmontado:
Exigível para DOS autônomo do PC, a saída é para o console e continuará sendo exibida até o programa ser interrompido. Apenas um programa de manipulação ASCII zero aqui. Simplesmente não há métodos internos ou convenientes nas APIs x86 ou DOS / BIOS para converter valores binários em seqüências de caracteres para saída.
Resultado:
fonte
MUMPS , 57 bytes
Resultado
Explicação
fonte
Haskell, 52 bytes
fonte
Python 2 - 57 bytes
Isso gera 00 para FF, com espaços entre.
fonte