Sua tarefa é preencher o balde com números até uma determinada entrada.
Regras
Os números ocupam a posição mais à esquerda, depois à direita, depois à esquerda e assim por diante.
Após o estouro, os números começam a se reunir em torno do balde de maneira semelhante. Eles ocupam posição na diagonal.
Os exemplos devem deixar claro qual é o resultado esperado (algumas regras são mencionadas nos exemplos).
Para mais de 10, use o dígito mais à direita
Exemplos:
The bucket:
| | or | |
| | | |
| | | |
| | | |
|------| |______|
input:1 (You can start from either 0 or 1)
output:
| | (There can be whitespace to the left even if there is no overflow
| | but the bucket must not be distorted.)
| |
|1 |
|------|
input:6
output:
| |
| |
| |
|135642|
|------|
input:8
output:
| |
| |
|7 8|
|135642|
|------|
input:23
output:
|913 20|
|357864|
|791208|
|135642|
|------|
input:27
output:
|913420|
|357864|
|791208|
|135642|
75|------|6
input:30
output:
|913420|
|357864|
|791208|
9|135642|0
75|------|68
input:40
output:
|913420|
|357864|
5|791208|6
939|135642|040
7175|------|6828
input:54 (Maximum input for start=1)
3|913420|4
13|357864|42
915|791208|620
7939|135642|0408
57175|------|68286
Isso é código-golfe, então o código mais curto vence.
|024531|
para ) ou apenas a entrada?Respostas:
JavaScript (Node.js) ,
145143 bytesUm padrão codificado (veja aqui para mais matemática).
1 indexado.
Experimente online!
Guardado 2 bytes graças a @tsh
fonte
/[^\s|-]/
->/[0-z]/
JavaScript (ES6),
144 ... 139137 bytesUma abordagem matemática (veja aqui para menos matemática).
Indexado a 0.
Experimente online!
Quão?
Nós definimos:
Escrevendo os valores completos em vez de apenas os dígitos da unidade, obtemos a seguinte tabela:
Esta tabela é essencialmente simétrica no eixo y, exceto que os valores no lado esquerdo são pares e os valores no lado direito são seus equivalentes ímpares.
Nós definimos:
E para cada célula, anexamos:
Comentado
fonte
Python 2 , 170 bytes
Experimente online!
fonte
Java 10, 168 bytes
Porto da resposta JavaScript de @Arnauld (também com 1 indexação e saída
-
como parte inferior). Se você gosta desta resposta, não deixe de votar também!Experimente online.
Explicação:
fonte
Código da máquina 6502 (C64), 130 bytes
Isso usa uma versão modificada da abordagem "pré-formatada" de algumas outras respostas. Ele contém uma sequência completa do balde, mas os dígitos são substituídos por valores a partir de
0xC1
, enquanto os caracteres para impressão direta estão no intervalo0x01
-0x7f
.O conjunto de caracteres C64 não inclui um
|
caractere pipe ( ), portanto é substituído pelo caractere PETSCII de aparência semelhante0x7d
.Demonstração online
Uso:
SYS49152,[n]
(1 indexado, por exemplo,SYS49152,54
para a saída completa)Desmontagem comentada :
fonte
Carvão , 64 bytes
Experimente online! Link é a versão detalhada do código. Explicação:
Digite o número.
Desenhe metade do balde e espelhe-o para completar o balde.
Loop para cada lado do balde.
Reflita o balde para que possamos desenhar em uma direção consistente nos dois loops e pule para a posição do primeiro dígito naquele lado do balde.
Passe o número de dígitos desse lado do balde.
Imprima o próximo dígito e mova o cursor para cima e para a esquerda.
Ajuste a posição do cursor lendo as compensações de duas seqüências de caracteres compactadas
003003003005203004000500
(compensações horizontais) e11011011011510200300040000
(compensações verticais). Essas compensações levam em consideração o movimento do cursor acima, o que convenientemente significa que elas nunca precisam ser negativas.fonte