Entrada:
Dois inteiros: um negativo, um positivo.
Resultado:
Na saída da primeira linha, do menor para o maior. Na segunda linha, removemos os números mais alto e mais baixo e alteramos todos os números individualmente. Na terceira linha, removemos os números mais alto e mais baixo novamente e alteramos novamente todos os números individuais. etc. (O exemplo abaixo deve tornar o desafio mais claro.)
Importante: Além disso, adicionamos espaços para que os números em uma coluna estejam todos alinhados (à direita).
O alinhamento mínimo é a parte principal desse desafio, isso significa que você não pode simplesmente fazer com que cada número tenha a mesma largura. A largura de uma coluna é baseada na maior largura numérica dessa coluna específica (e a sequência com alteração de sinal deve fornecer aos números alguma variedade de largura por coluna).
Por exemplo:
Input: -3,6
Output:
-3,-2,-1, 0, 1, 2, 3, 4,5,6 // sequence from lowest to highest
2, 1, 0,-1,-2,-3,-4,-5 // -3 and 6 removed; then all signs changed
-1, 0, 1, 2, 3, 4 // 2 and -5 removed; then all signs changed again
0,-1,-2,-3 // -1 and 4 removed; then all signs changed again
1, 2 // 0 and -3 removed; then all signs changed again
// only two numbers left, so we're done
Como você pode ver acima, os espaços são adicionados aos números positivos, quando eles compartilham uma coluna com números negativos para compensar o -
(o mesmo se aplicaria aos números de 2 dígitos).
Regras do desafio:
- A entrada deve ter dois números inteiros
- Você pode assumir que esses números inteiros estão no intervalo
-99
-99
(inclusive). - O primeiro número inteiro será negativo e o outro será positivo.
- Você pode assumir que esses números inteiros estão no intervalo
- A saída pode estar em qualquer formato razoável, desde que fique claro que há linhas e colunas alinhadas corretamente: Ie STDOUT; retornando como String com novas linhas; retornando como lista de strings; etc. Sua ligação.
- A saída também deve conter um delimitador de sua própria escolha (exceto espaços, tabulações, novas linhas, dígitos ou
-
): Ou seja,
; e;
e|
; eX
; etc. são todos delimitadores aceitáveis. - As linhas de saída podem não conter um delimitador inicial ou final.
- A saída pode conter UMA nova linha final, e qualquer linha pode conter qualquer número de espaços finais.
Regras gerais:
- Isso é código-golfe , então a resposta mais curta em bytes vence.
Não permita que idiomas com código de golfe o desencorajem a postar respostas com idiomas que não sejam codegolf. Tente encontrar uma resposta o mais curta possível para 'qualquer' linguagem de programação. - As regras padrão se aplicam à sua resposta, para que você possa usar STDIN / STDOUT, funções / método com os parâmetros adequados, programas completos. Sua chamada.
- As brechas padrão são proibidas.
- Se possível, adicione um link com um teste para o seu código.
- Além disso, adicione uma explicação, se necessário.
Casos de teste:
Input: -3,6
Output:
-3,-2,-1, 0, 1, 2, 3, 4,5,6
2, 1, 0,-1,-2,-3,-4,-5
-1, 0, 1, 2, 3, 4
0,-1,-2,-3
1, 2
Input: -1,1
Output:
-1,0,1
0
Input: -2,8
Output:
-2,-1, 0, 1, 2, 3, 4, 5, 6,7,8
1, 0,-1,-2,-3,-4,-5,-6,-7
0, 1, 2, 3, 4, 5, 6
-1,-2,-3,-4,-5
2, 3, 4
-3
Input: -15,8
Output:
-15,-14,-13,-12,-11,-10,-9,-8,-7,-6,-5,-4,-3,-2,-1, 0, 1, 2, 3, 4, 5, 6,7,8
14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0,-1,-2,-3,-4,-5,-6,-7
-13,-12,-11,-10, -9, -8,-7,-6,-5,-4,-3,-2,-1, 0, 1, 2, 3, 4, 5, 6
12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0,-1,-2,-3,-4,-5
-11,-10, -9, -8, -7, -6,-5,-4,-3,-2,-1, 0, 1, 2, 3, 4
10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0,-1,-2,-3
-9, -8, -7, -6, -5, -4,-3,-2,-1, 0, 1, 2
8, 7, 6, 5, 4, 3, 2, 1, 0,-1
-7, -6, -5, -4, -3, -2,-1, 0
6, 5, 4, 3, 2, 1
-5, -4, -3, -2
4, 3
Input: -3,15
Output:
-3,-2,-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,14,15
2, 1, 0,-1,-2,-3,-4,-5, -6,-7, -8, -9,-10,-11,-12,-13,-14
-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13
0,-1,-2,-3,-4,-5,-6,-7, -8,-9,-10,-11,-12
1, 2, 3, 4, 5, 6, 7, 8, 9,10, 11
-2,-3,-4,-5,-6,-7,-8,-9,-10
3, 4, 5, 6, 7, 8, 9
-4,-5,-6,-7,-8
5, 6, 7
-6
Input: -12,12
Output:
-12,-11,-10,-9,-8,-7,-6,-5,-4,-3,-2,-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,11,12
11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0,-1,-2,-3,-4,-5,-6,-7,-8,-9,-10,-11
-10, -9, -8,-7,-6,-5,-4,-3,-2,-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10
9, 8, 7, 6, 5, 4, 3, 2, 1, 0,-1,-2,-3,-4,-5,-6,-7,-8,-9
-8, -7, -6,-5,-4,-3,-2,-1, 0, 1, 2, 3, 4, 5, 6, 7, 8
7, 6, 5, 4, 3, 2, 1, 0,-1,-2,-3,-4,-5,-6,-7
-6, -5, -4,-3,-2,-1, 0, 1, 2, 3, 4, 5, 6
5, 4, 3, 2, 1, 0,-1,-2,-3,-4,-5
-4, -3, -2,-1, 0, 1, 2, 3, 4
3, 2, 1, 0,-1,-2,-3
-2, -1, 0, 1, 2
1, 0, -1
0
-99
e a maior entrada positiva possível99
.Respostas:
Gelatina ,
252420 bytesEste é um link diádico que retorna uma matriz de linhas.
Experimente online!
Como funciona
fonte
05AB1E , 59 bytes
Mais uma vez, estou ferrado com o mesmo bug que escrevi uma correção há meses atrás, mas nunca fui pressionado ... O
golfe ainda deve ser possível.
Experimente online!
fonte
ŸÐ',ý,gÍ;µ¦¨(D',ý,¼
, ele não se encaixa as especificações de formatação, veja se você pode melhorá-lo;)Ÿ[Ðg1‹#',ý,¦(¨
seria suficiente caso contrário :)Java 8,
483480486† 467 bytes† Bytes gerados devido a correção de bugs.
Ok, isso levou muito mais tempo (e bytes) do que eu pensava (em Java, que é ..). Definitivamente, isso pode ser um pouco mais complicado, provavelmente usando uma abordagem completamente diferente, em vez de criar uma matriz de grade NxN para preencher e depois 'retirar' os zeros (com uma borda irritante para o caso de teste e
-1,1
também-12,12
) .Experimente online.
Explicação:
fonte
Javascript (ES6), 269 bytes
Explicado:
fonte
QBIC , 46 bytes
Como funciona:
Felizmente, ao imprimir um número, o QBasic adiciona automaticamente o preenchimento necessário.
fonte
q
, o valor padrão começa em 1? Todos os valores no QBIC começam em 1 ou há algo que estou faltando aqui? E qual é od
/ onded
representa? Oud
o número atual no loop e o?
simplesmente um delimitado necessário no código do loop for (em vez de?
ser o número atual, que foi como eu o li inicialmente)?q
começa em 1. Todas as letras minúsculas são vars numéricos e as letrasq-z
são inicializadas em1-10
. E vários comandos atribuem números automaticamente na ordem em que são encontrados no código.d
é de fato o iterador no loop FOR interno. Para mais detalhes, consulte também a vitrine - ou estaPerl 6 , 146 bytes
Tente
Produz uma sequência de strings
Expandido:
fonte
PHP 7.1, 277 bytes
Intérprete Online
fonte
Aplicativo de console C # 196 bytes
fonte
Javascript -
196185176 bytesEu não estou realmente atualizado com algumas das técnicas mais recentes de JS, então isso provavelmente poderia ser muito melhor.
Simplesmente cria uma boa tabela HTML antiquada, sem largura definida para as células, para que a primeira linha padronize a largura de cada entrada, mantendo o espaçamento ideal. Também (ab) usa o "recurso" do HTML de não exigir tags de fechamento se uma nova tag de abertura aparecer primeiro.
fonte
Python 2 - 208 bytes
Experimente online
Cria uma matriz de valores de preenchimento e, em seguida, usa-a para construir as strings formatadas necessárias
Explicação:
fonte
,
e;
e|
são todos delimitadores aceitáveis. " Atualmente você usar um espaço como delimitador. Mas a principal dificuldade da largura foi realmente resolvida, então você está indo muito bem até agora! Apenas esta pequena mudança, e então isso deve ser feito. :)%l[i], range
necessário?)