Todos os créditos para Adnan por ter vindo com esse desafio.
Meu último desafio, antes que eu pare .
Tarefa
Dado inteiro positivo n
, se n
for ímpar, repita /
isso muitas vezes; se n
for par, repita \
isso várias vezes.
(Sério, os casos de teste seriam muito mais claros do que esta descrição, basta olhar para os casos de teste.)
Especificações
- Qualquer formato de entrada / saída razoável.
- Aplicam-se brechas padrão .
Casos de teste
n output
1 /
2 \\
3 ///
4 \\\\
5 /////
6 \\\\\\
f=n=>...
, você poderia chamá-lo diretamente:(n=>...)(5)
. (Ou, se você estiver usando o Node.js REPL, então você poderia usarthis._
, que significa a última coisa que entrou)Python, 20 bytes
fonte
05AB1E / 2sable ,
151198 bytes-2 bytes graças a Leaky Nun
-1 byte graças a Emigna
Experimente online! em 05AB1E
ou em 2sable
fonte
sè×
😮 #"/\"
pode ser „/ \Perl, 20 bytes
Inclui +1 para
-p
Execute com entrada no STDIN:
squigly.pl
fonte
-p
opção? Eu uso;
no transliterado exatamente porque-p
tem um implícito;
no final do código para que eu possa salvar mais 1 byte. Isso tem funcionado, pelo menos desde perl 5,6 (provavelmente enquanto a-p
opção existia de fato);
acréscimo de-p
é bastante impressionante, bem feito.Retina , 21
Experimente on-line (primeira linha adicionada para permitir a execução de vários casos de teste).
fonte
C #, 42 bytes
Seleciona o caractere correto e cria uma nova sequência que consiste nesse caractere repetidas
n
vezes.fonte
PHP, 38 bytes
(variante 38 bytes)
(variante 38 bytes)
(variante 40 bytes)
fonte
C, 40 bytes
Experimente no Ideone
fonte
putchar(92-n%2*45)
tem o mesmo comprimento.Gelatina , 5 bytes
Experimente online! ou Verifique todas as caixas de teste.
fonte
Ø^
é um byte menor que⁾/\
.J, 10 bytes
Este é um verbo de seis trens, composto por:
Este é um gancho entre
#
e('\/' {~ 2 | ])
; um gancho se(f g) y
expande paray f (g y)
, então isso se expande paray # (... y)
, o qual, para caracteres únicos, gera uma lista dey
caracteres.A segunda parte é um trem de 5 trens, consistindo em:
Isso avalia dois garfos:
O garfo interno,,
2 | ]
é o módulo dois. O garfo externo, portanto, é:Que pega (
{~
) o índice mod2 (mod2
) da string/
.Em seguida, usando o gancho de cima:
Isso produz o que queremos e terminamos.
fonte
Haskell, 25 bytes
-1 byte graças a Damien com
cycle
.fonte
f n=cycle"\\/"!!n<$[1..n]
Mathematica,
343228 bytesFunção anônima. Pega um número inteiro como entrada e retorna uma lista de caracteres como saída.
fonte
~Table~#
.<>""
e retornar uma lista de caracteres.~Do~Infinity
e tal 10.2+ bem ...Powershell,
3027 bytesAtualizar:
Mudando para
param
, graças a timmyd .ou um pouco mais legível
Teste:
fonte
param($n)
vez de$args
, como segue para 27 bytesparam($n)('\','/')[$n%2]*$n
Mathematica, 29 bytes
Cruelmente explora o fato de que
[[1]]
retorna o primeiro argumento de uma função enquanto[[0]]
retorna a própria função (cabeça), aplicada à função estranhamente válida chamada na"\\"
qual está sendo "avaliada" em"/"
.fonte
a[b]
é apenas uma expressão genérica com heada
(index0
) e elementob
(index1
), e funções são apenas tipos especiais de expressão (na verdade, seria mais correto dizer que funções não são ' expressões, mas são simplesmente regras para transformar expressões que geralmente têm formaf[x...]
). :)Ruby, 15 bytes
Veja-o em eval.in: https://eval.in/632030
fonte
Fourier, 27 bytes
Experimente online!
fonte
Braquilog , 15 bytes
Experimente online!
Explicação
fonte
CJam , 9 bytes
Experimente online!
Explicação
fonte
> <> (Peixe), 30 bytes
Primeira vez usando esse idioma, mas acho que pelo menos economizei um pouco de espaço usando condicionalmente o / como parte da saída ou um espelho para redirecionar o fluxo. Provavelmente ainda terrivelmente ineficiente, eu sinto que provavelmente poderia ser reduzido um pouco mais, pelo menos.
Entrada é a pilha inicial, saída é
stdout
Experimente online!
fonte
Dyalog APL , 11 bytes
Requer
⎕IO←0
qual é o padrão em muitos sistemas.⊢
o argumento⍴
remodelar (repetições)'\/'⊃⍨
a sequência "/" selecionada por2|⊢
a divisão restante quando o argumento é dividido por doisTryAPL online!
fonte
Java 7,
6865 bytes3 bytes salvos graças a @ user902383 e @SeanBean .
Assim como nesta resposta , o código de golfe mais curto parece circular e imprimir. Recursivo e
void c(int i){System.out.print(new String(new char[i]).replace("\0",i%2<1?"\\":"/"));}
parece ser mais longo.
Ungolfed & código de teste:
Experimente aqui.
Saída:
fonte
x=-1;++x<i
parax=0;x++<i
que você pode reduzir em um byte"\\" : "/"
com92:'/'
;)R,
4746 bytesEm R, você precisa escapar de barras invertidas. o argumento
sep
também precisa ser totalmente especificado, pois vem depois...
. Assim, irritantemente poucas oportunidades para salvar caracteres :(Graças ao bouncyball por jogar fora um byte.
fonte
n=scan();cat(rep(c('\\','/')[n%%2+1],n),sep='')
T-SQL 50 bytes
Claro que não
STDIN
aqui, então vamos assumir umaINT
variável codificada como esta:DECLARE @ INT
então a solução é:fonte
Pip , 8 bytes
Direto. Utiliza indexação modular para selecionar a repetição de caracteres e seqüências para multiplicá-lo. Experimente online!
Esta pergunta apresenta uma comparação interessante entre Pip, Pyth e Jelly , os dois últimos com 5 bytes. Todos os três idiomas têm saída implícita, com operadores de caractere único para indexação modular e repetição de cadeias, e nenhum requisito para escapar de barras invertidas nas cadeias. Existem duas diferenças principais, no entanto:
É provável que nenhum desses recursos apareça no Pip 1 (não gosto da estética de delimitadores desequilibrados, e sintaxe sem pontos ou operandos implícitos parecem que seriam muito estranhos ao meu analisador de expressões infix), mas eu ' estou bem em tocar terceiro violino. Mesmo que a "legibilidade" seja extremamente relativa no golfe, eu argumentaria que esses três bytes extras tornam o programa Pip muito mais fácil de entender de relance - e, no meu livro, essa é uma troca interessante.
1 Embora, cadeias de caracteres únicos no Pip usem um único
'
delimitador, inspirado no CJam e citando no Lisp.fonte
code golf
:! =golflang design
. Agora você pode argumentar que o mesmo princípio (menor é sempre melhor) também se aplica ao design da linguagem. Só estou dizendo que, para mim, usabilidade e até estética são considerações.Pitão , 5 bytes
Suíte de teste.
Indexação modular na string
\/
e repita.fonte
Perl 6 , 16 bytes
Uso:
fonte
Julia, 20 bytes
fonte
SpecBAS - 28 bytes
ODD
retorna 1 se o número for ímpar e o usa como índice para imprimir o caractere correto n número de vezes. É necessário adicionar 1, pois as cadeias SpecBAS começam no caractere 1.fonte
Java 8, 56 bytes
Gostaria de agradecer a @Kevin Cruijssen em avançado por jogar minha resposta ainda mais.
Programa de Teste Ungolfed
fonte
Na verdade, 10 bytes
Sugestões de golfe são bem-vindas. Experimente online!
Como funciona
fonte