Sua tarefa é simples. Poste um trecho em qualquer idioma que, se o trecho repetido n vezes, produzirá n em decimal, octal e hexadecimal, nessa ordem, separados em espaços. n é um número inteiro maior que zero. Não há zeros à esquerda. Menor resposta ganha
Exemplo
Se o trecho for ABC
, o caso de teste será
ABC
1 1 1
ABCABC
2 2 2
ABCABCABCABCABCABCABCABCABC
9 11 9
ABCABCABCABCABCABCABCABCABCABCABCABC
12 14 C
ABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABC
18 22 12
1 01 0x1
? (Inclui prefixos)Respostas:
Japonês, 12 bytes
Obrigado a @ETHproductions por economizar 2 bytes!
O mesmo que minha resposta.
fonte
[°TTs8 TsG]¸
Perl, 30 bytes
Volte para o início da linha, incremente o contador e o contador de impressão substituindo a saída antiga.
fonte
JavaScript,
54 53 5147 bytesGuardado 4 bytes graças a @ user81655
Estou realmente meio surpreso que isso funcione.
Explicação
Experimente online
fonte
ReferenceError: Can't find variable: d
mesmo no modo loose D:d=d?d+1:1
?C ++,
205179 bytes(Sem nova linha final - quando copiada, a primeira linha da cópia e a última linha do original devem coincidir)
Basicamente, isso funciona criando uma sequência de variáveis estáticas que, em construção, incrementam um contador de variáveis globais. Então, na destruição, se o contador não for 0, ele realiza toda a sua saída e define o contador como zero.
Para definir uma sequência de variáveis sem conflitos de nome, usamos a macro explicada da seguinte maneira:
que depende um pouco das peculiaridades do processador de strings. Usamos
z
muitas vezes para definir classes / variáveis que não entrarão em conflito entre si quando copiadas em linhas separadas. Além disso, as definições que devem ocorrer apenas uma vez são colocadas na primeira linha, comentada em cópias do código. As instruções#define
e#include
não se importam com a repetição, portanto não precisam de tratamento especial.Este código também apresenta um comportamento indefinido na instrução:
como não há pontos de sequência, mas c é modificado e acessado. O LLVM 6.0 fornece um aviso, mas o compila conforme o desejado - que é
--c
avaliado antesc
. Pode-se, à custa de dois bytes, adicione a declaração--c;
antes das saídas e mudanças--c
emprintf
quec
, o que se livrar do aviso.Substituído
std::cout
porprintf
salvar 26 bytes graças a uma sugestão do meu irmão.fonte
CJam,
201918 bytesObrigado a @ MartinBüttner por jogar fora um byte!
Experimente online!
Como funciona
fonte
14, 14 caracteres / 28 bytes
Try it here (Firefox only).
Primeira resposta! Embora haja provavelmente melhores maneiras de lidar com isso.
Explicação
fonte
MATL , 26 bytes
Usa a versão atual (6.0.0) . Trabalhos em oitava.
Exemplos
Uma vez:
Duas vezes:
16 vezes:
Explicação
O número de elementos na pilha é usado para indicar quantas vezes executamos o snippet
fonte
OCaml, 198 bytes
Inclui uma nova linha à direita e exige que o nome do arquivo comece com um til (eu usei
~.ml
; você pode executá-loocaml \~.ml
) porque é o caractere ASCII padrão imprimível de maior valor. Abusa do fato de que todos os caracteres em uma sequência são mutáveis eSys.argv.(0).[0]
é o primeiro caractere no nome do arquivo.Deve funcionar apenas para n = 1 a 126, porque o código ASCII para
~
é 126 e estou adicionando um à saída. Pode ser feito dois bytes mais curto se quisermos apenas n = 1 a 125. Depois de repetido 126 vezes, ele retornará para n = 1.Este é o meu primeiro golfe, por isso quaisquer comentários ou melhorias serão muito apreciados.
Versão não destruída:
fonte
Sys.argv.(0).[0]
. Eu não sei muito sobre o OCaml, no entanto.TeaScript ,
2120 bytesEu deveria fazê-lo fechar automaticamente
;
Experimente online
Explicação
┼
torna-se++
fonte
Perl, 40 bytes
Há uma nova linha final por trás dos dois pontos.
Trata tudo após a primeira linha como um documento aqui e conta o que está
z
nele. Para cada cópia adicional do códigoz
é adicionada uma. Temos que adicionar1
à contagem, porque não há nenhum para o primeiro trecho (aquele que é executado).Se a saída adicional para stderr for permitida, podemos omitir as 2 aspas simples
''
e diminuir para 38 bytes. Sem o''
perl emite um aviso sobre um recurso obsoleto.fonte
Mathematica, 76 bytes
Observe que não
n
deve ter definições antes.Aqui, o comportamento de
;
é usado. O snippet acima é um únicoCompoundExpression
, no entanto, quando alguns snippets são reunidos, ainda existe um,CompoundExpression
conforme mostrado abaixo. (Alguns rearranjos desnecessários são feitos.)Portanto, não se pode fazer esse fragmento funcionar se a escrita for explícita
CompoundExpression
. Além disso, quase tudo o que você gosta pode ser colocado antes do primeiro;
, comoE
,Pi
ouMandelbrotSetPlot[]
,.fonte
bash, 49 bytes
Arquivo
count.bash
:... nenhuma nova linha à direita.
Corre:
fonte
Python 2, 54 bytes
Nenhuma nova linha à direita. Saídas no formulário
1 01 0x1
.Se não estiver certo, 56 bytes
Quando colados na frente um do outro, o comprimento do arquivo aumenta em 1 linha por cada tempo colado. O caso base começa com 2 linhas, então você precisa subtrair 1 do comprimento da linha. A computação é suprimida pelo comentário.
fonte
"%d %o %x"%(n,n,n)
, isso é muito legal. Eu não tinha ideia de que você poderia fazer isso. Se os prefixos de saída não estiverem ok, terei que pedir emprestado.Python 2.x 140 bytes
Isso não era para ser uma solução excessivamente competitiva, mas um método que eu achei divertido, por um lado, uma tentativa de um código de golfe multithread .
Mantém um contador, gera um encadeamento para cada contagem e, se o contador não for alterado quando o contador disparar após a conclusão de um problema matemático caro (em vez de um contador para salvar bytes), a sequência formatada será impressa.
Alguns exemplos de configurações e suas saídas:
e quinze pastas de cópias:
fonte
thread.start_new_thread
Python poderia ter pensado em um nome de método pior para o código de golfe?Perl 5 , 31 bytes
Usa a mesma abordagem da minha resposta para 'Dobro da fonte, você dobra a saída!' .
Experimente online!
fonte
Ruby, 35 bytes
Cada trecho é incrementado
$.
(que começa como 0 se nenhum arquivo foi lido), mas apenas o último gera algo.*-~-0
avalia como*1
, significando imprimir a sequência uma vez, mas com concatenação, torna-se*-~-01
uma expressão octal avaliando como 0. Como$><<
não inclui uma nova linha à direita, imprimir a sequência vazia significa imprimir nada.fonte