Su tarea es llenar el cubo con números hasta una entrada dada.
Reglas
Los números ocupan la posición más a la izquierda, luego a la derecha, luego a la izquierda, etc.
Después del desbordamiento, los números comienzan a reunirse alrededor del cubo de manera similar. Ocupan posición en diagonal.
Los ejemplos deben dejar en claro cuál es el resultado esperado (algunas reglas se mencionan en los ejemplos).
Para más de 10, use el dígito más a la derecha
Ejemplos:
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
Este es el código de golf, por lo que gana el código más corto.
|024531|
para ) o solo la entrada?Respuestas:
Javascript (Node.js) ,
145143 bytesUn patrón codificado (ver aquí para más matemáticas).
1 indexado.
Pruébalo en línea!
Guardado 2 bytes gracias a @tsh
fuente
/[^\s|-]/
->/[0-z]/
JavaScript (ES6),
144 ... 139137 bytesUn enfoque matemático (ver aquí para menos matemáticas).
0 indexado.
Pruébalo en línea!
¿Cómo?
La salida se construye carácter por carácter, cony decreciente desde 4 4 a 0 0 y X creciente desde 0 0 a 18 años en cada fila.
Definimos:
Al escribir los valores completos en lugar de solo los dígitos de la unidad, obtenemos la siguiente tabla:
Esta tabla es esencialmente simétrica a través del eje y, excepto que los valores en el lado izquierdo son pares y los valores en el lado derecho son sus contrapartes impares.
Definimos:
Y para cada celda, agregamos:
Comentado
fuente
Python 2 , 170 bytes
Pruébalo en línea!
fuente
Java 10, 168 bytes
Puerto de la respuesta de JavaScript de @Arnauld (por lo tanto, también 1 indexado y con salida
-
como inferior). Si te gusta esta respuesta, ¡asegúrate de votarlo también!Pruébalo en línea.
Explicación:
fuente
Código de máquina 6502 (C64), 130 bytes
Utiliza una versión modificada del enfoque "preformateado" de algunas otras respuestas. Contiene una cadena completa del depósito, pero los dígitos se reemplazan por valores a partir de
0xC1
, mientras que los caracteres para la impresión directa están en el rango0x01
-0x7f
.El juego de caracteres C64 no incluye un carácter pipe (
|
), por lo tanto, se reemplaza con el carácter PETSCII de aspecto similar0x7d
.Demostración en línea
Uso:
SYS49152,[n]
(1 indexado, por ejemplo,SYS49152,54
para la salida completa)Desmontaje comentado :
fuente
Carbón , 64 bytes
Pruébalo en línea! El enlace es a la versión detallada del código. Explicación:
Ingrese el número.
Dibuje la mitad del cubo y luego duplíquelo para completar el cubo.
Bucle para cada lado del cubo.
Refleje el cubo para que podamos dibujar en una dirección constante en ambos bucles, y saltar a la posición del primer dígito en ese lado del cubo.
Pase el número de dígitos en ese lado del cubo.
Imprima el siguiente dígito y mueva el cursor hacia arriba y hacia la izquierda.
Ajuste la posición del cursor leyendo los desplazamientos de dos cadenas comprimidas,
003003003005203004000500
(desplazamientos horizontales) y11011011011510200300040000
(desplazamientos verticales). Estas compensaciones tienen en cuenta el movimiento del cursor anterior, lo que convenientemente significa que nunca tienen que ser negativas.fuente