A primeira linha é feita com ceil(n/2)
elementos em que cada elemento é:<space><odd-number><space>
A segunda linha é feita com ceil(n/2)
elementos, mas cada elemento é / \
apenas.
Você pode assumir n >= 0
e n <= 10
.
Exemplos
Entrada: 3
1 3
/ \/ \
Entrada: 10
1 3 5 7 9
/ \/ \/ \/ \/ \
Exemplo em Python 3, 103 bytes:
lambda a:print("".join([" "+str(i)+" "for i in range(1,a+1,2)]+["\n"]+["/ \\"for i in range(1,a+1,2)]))
O menor código em bytes vence :)
<space><odd-number><space>
, mas os casos de teste não têm espaço após o último número ímpar. É opcional? Além disso, é a saída paran=0
duas linhas vazias?Respostas:
05AB1E ,
19151412 bytes05AB1E usa a codificação CP-1252 .
Guardado 4 bytes graças a Adnan .
Economizou 2 bytes graças a carusocomputing
Experimente online!
Explicação
fonte
Ï
EXISTE ?! Isso parece super útil.LDÉÏ
é o mesmoÅÉ
e„ ýðì
pode ser substituído porðì)»
:).)
, não pode?ÅÉðìDg…/ \×»
usa emDg
vez de¹;î
salvar por outro byte também.Pyke, 16 bytes
Experimente aqui!
17 bytes e mais impressionante
Experimente aqui!
Isso usa IMHO, um algoritmo IMPRESSIONANTE para garantir que a primeira linha esteja alinhada corretamente.
Isso substitui todos os caracteres da lista com strings por espaços.
~B
contém todos os caracteres no idioma Brain **** e é a primeira vez que usei essa variável.O programa
`~Bd.:
faz isso:fonte
Python 2, 63 bytes
Um pequeno truque para a primeira linha: ela não imprime os números pares, mas os toma como uma sequência vazia, o que leva ao início do espaço vazio (0 estaria lá) e dobra espaços entre os números sem nenhuma modificação no intervalo, a desvantagem é um espaço de liderança no par numerado
n
fonte
Python
23,67656360 BytesNada muito louco aqui,
acho que a primeira seção provavelmente pode ser feita mais curta, mas não sei bem como. Eu uso o fato de que, neste caso-~n/2
, funcionaráceil
.Abaixo estão soluções alternativas de 61 e 65 bytes no Python 2:
Agradecimentos a Rod por salvar 2 bytes e Artyer por salvar outro byte alternando a versão :)
fonte
%(tuple(...))
por%[*...]
, mas teria que fazer isso #-~n//2
range
para uma lista porque 3range
é como o Python 2xrange
.tuple()
(*<iterable>,)
para lançar a tupla em Python 3. Isso economiza 1 byte embora depois de ligarn/2
paran//2
para Python 3.JavaScript (ES6), 55 bytes
Observe o espaço no final da segunda linha.
fonte
.replace
poderia ser melhor, mas eu não me incomodei em verificar ...Python 2, 53 bytes
Aproveita a restrição
n <= 10
para gerar a linha superior cortando um pedaço de uma corda codificada.As saídas de 1 a 10 são
A saída para 0 é duas linhas vazias.
fonte
Vim,
735956 bytesEste é um IMO com contagem de bytes muito alta para o que parece ser um problema simples. Sinto como se estivesse perdendo algo óbvio.
Experimente online!
Não imprimíveis:
fonte
:s;.;/ \\;g
. 2) no seu segundo comando substituto, você pode deixar a pesquisa em branco e ela usará sua última pesquisa (que por acaso é a mesma). Além disso,&
é equivalente a\0
e um byte mais curto. Então você recebe:s// & /g
Mathematica, 65 bytes
Função anônima. Pega um número como entrada e retorna uma string como saída. Os caracteres Unicode, respectivamente, são U + 2308 LEFT CEILING para
\[LeftCeiling]
e U + 2309 RIGHT CEILING para\[RightCeiling]
.fonte
WinDbg, 100 bytes
A entrada é feita configurando um valor no pseudo-registro
$t0
.Parece que é o mais curto aqui, apenas para imprimir a string enquanto ela está sendo construída, em vez de tentar construí-la primeiro e exibir a coisa toda. Eu teria uma solução mais curta se o WinDbg me deixasse escrever para o endereço
0
.Como funciona:
Saída para cada valor de
n
:fonte
> <> (PEIXE),
69606855 bytesCole-o neste intérprete online!
O número 5 na primeira linha é o seu valor de entrada (codificado como 5, substituído por 0-a ou i para entrada do usuário).
Editar 1: Movido o posicionamento da nova linha para o espaço da primeira linha (estava vazio) para salvar 9 bytes no geral no espaço de uma nova linha.
Edit 2: Conforme observado pelo user7150406, a saída estava incorreta (sem impressão de espaços), isso foi corrigido com uma perda de 8 bytes.
Edit 3: mudou completamente a lógica, não faz sentido verificar se o número é ímpar - coloque todos os números na pilha e remova todos os segundos. Byte salvou 13!
fonte
Java,
118112 bytesEdit: Saved 6 Bytes graças a @peech
Golfe:
Ungolfed:
Teste:
fonte
i
no seu primeiro loop for, pode ser assimfor(; i < n; i++)
. Você pode jogar ainda mais com essa alteração: aso += i + " ";
alterações noo += i++ + " ";
loop for e forfor(; i < n; )
. Ou seja, se você deseja manter a declaração if. Você pode alterar seu incremento de i parai += 2
e excluir a instrução if inteira, mas, nesse caso, minha segunda proposição não se aplica :) (ps: eu não testei isso :))i
inicialização dofor
loop, mas as outras coisas ficaram presas em um loop. Eu poderia precisar de brincar com ele um pouco mais :)o += i++ + " ";
:). Btw, você tem um pequeno bug em seu código :) desde Java usafloor()
na divisão inteira (4/3 = 1), você deve fazê-lo como este:int i = 1; n += 1; for (; i < n; i += 2) { ... jada jada ... }
. se você incrementar ii += 2
, não será necessário que a instrução if verifique a paridade. Ele também salva outros 3 bytes :) tente aqui: ideone.com/ekaUUHfloor
divisão mim quirk quando se joga com um pouco de Java há poucos dias :)C # 6, 95 bytes
Lambda completo:
fonte
CJam,
2623 bytesTeste-o!
-3 graças a 8478 (Martin Ender)
fonte
Sri,:)2%_S2**N@,"/ \\"*
+
. E eu juro, eu realmente useied
! ... mais curto que Pyth.Idioma do criador de jogos (GM 8.0), 97 bytes
Dado que a entrada é no máximo 10,
chr(48+i)
funcionará no lugar destring(i)
, embora o número de bytes seja o mesmo.Legível:
fonte
Pitão,
2422 bytesAgradecimentos a 42545 (ETHproductions) por -1 byte
Intérprete online
11 casos de teste
fonte
*lK"/ \\
\
em vez de\\
:)> <> (Peixe)
526362 bytesExperimente online!
Para usar basta colocar
n
na pilha e você vai embora!Muito disso é retirado da resposta da @ Teal-Pelican :).
Editar: a saída não está alinhada corretamente na submissão> <>! A corrigir ...
Edit2: Eu tive que sacrificar alguns bytes, mas a saída está realmente correta agora.
Edit3: Não há mais diversão com
\
/
espelhos e eu economizo 1 byte.Resultado:
fonte
C,
1007977 bytesfonte
R,
70696858 bytesfonte
Bater,
64,59.,57,51,49.,48., 45 bytesEDITAR:
-s ""
por-s\
Golfe
Pedaço (45 bytes):
Função (versão original) (57 bytes):
Teste
fonte
sed
é brilhante. Ao não usar uma função nem printf, você salva 10 bytes:seq -f" %g " -s "" 1 2 $1|sed 'p;s| . |/ \\|g'
cat
para ler a entrada de STDIN, como IMO não é realmente justo usar uma variável pré-definida para passar os dados.$1
é apenas o primeiro parâmetro transmitido ao programa. Eu não acho que é trapaça ver meta.codegolf.stackexchange.com/questions/2447/…Abaixo 93 , 64 bytes
Experimente Online!
fonte
Ruby
8260 BytesA solução Ruby rápida e suja definitivamente poderia ser melhor otimizada se eu fosse melhor com Ruby
Uso: prog.rb 10
Saída:
edit: numerosas edições e otimizações por @Manatwork!
fonte
print
→$><<
e use a interpolação de strings" #{x} "
. Mas o melhor seria reduzir o número de.each
emitindo 1ª linha diretamente do retorno de chamada e construção da 2ª linha em uma variável:s="";(1..$*[0].to_i).step(2){|x|$><<" #{x} ";s+="/ \\"};puts"",s
. Ou atéputs"",(1..$*[0].to_i).step(2).map{|x|$><<" #{x} ";"/ \\"}*""
.Numeric#step
aceita 2 parâmetros, para evitar a longa sintaxe de intervalo que requer parênteses em torno de:(1..$*[0].to_i).step(2)
→1.step($*[0].to_i,2)
.JavaScript (ES6),
6664 bytesCria recursivamente a primeira linha e depois acrescenta a segunda. A primeira linha é construída com a observação de que é simplesmente o intervalo [0 ... n] com cada item n transformado em um espaço se for par, ou n concatenado com um espaço se for ímpar.
fonte
Python 2, 60 bytes
Guardado 6 bytes graças a @Kade!
fonte
list()
elenco, removê-lo você fica a 60 :)lambda s:" "+" ".join(range(s+1)[1::2])+"\n"+-~s/2*"/ \\"e
porque, então, daria uma lista de entradas e morreLote, 107 bytes
fonte
Scala,
9995 bytesUngolfed
fonte
Ruby, 48 bytes
fonte
Oitava, 45 bytes
f=@(n)reshape(sprintf(' /%d \',1:2:n),2,[]);
Teste:
f (8)
fonte
QBIC , 35 bytes
Explicação:
fonte
Kitanai , 140 bytes
fonte
Perl, 46 + 2 (
-pl
sinalizador) = 48 bytesUsando:
Ou 52 bytes:
Usando:
fonte