Su tarea es generar un trapecio mágico 8:
1 × 8 + 1 = 9
12 × 8 + 2 = 98
123 × 8 + 3 = 987
1234 × 8 + 4 = 9876
12345 × 8 + 5 = 98765
123456 × 8 + 6 = 987654
1234567 × 8 + 7 = 9876543
12345678 × 8 + 8 = 98765432
123456789 × 8 + 9 = 987654321
- Salida en el idioma elegido en la menor cantidad de bytes posible.
- Tenga en cuenta la cantidad de espacios al comienzo de cada línea para mantener la forma del trapecio.
- Se permiten espacios finales.
- Puede usar
×
la letra x, la que prefiera.
code-golf
kolmogorov-complexity
rybo111
fuente
fuente
Respuestas:
Python 2, 59 bytes
Los números
a
yi
la ecuacióna * 8 + i
se generan aritméticamente. Cada línea,i
se incrementa ya
tiene el siguiente dígito agregado a través dea=a*10+i
. Por ejemplo, sia=12345, i=5
, entonces sei
convierte6
, entonces lo nuevoa
es12345*10 + 6
cuál es123456
.Almacenarlos como números en lugar de cadenas nos permite calcular el RHS tal como lo indica la ecuación
a*8+i
, que es más corta que la inversión de cadenas.fuente
V , 37 bytes
Pruébalo en línea!
Esto contiene no imprimible, así que aquí hay un hexdump:
fuente
05AB1E ,
32313028 bytesCódigo:
Utiliza la codificación CP-1252 . Pruébalo en línea! .
fuente
.c
no es utilizable aquí?PHP,
105896057 bytesmi primer intento de golf aquí (gracias a manatwork & user55641)
59
89 (mi propio intento)
105 (primero)
fuente
$t.=10-$i
con$s*8+$i
. tio.run/##K8go@G9jXwAk0/…$s*8+$i
lugar de$t.=10-$i
guardar dos más.Pyth, 32 bytes
Pruébalo en línea!
Gracias a @FryAmTheEggman por guardar 2 bytes. Gracias a @KennyLau por guardar 3 bytes.
fuente
s
no se une con el espacio, se une sin delimitador.CJam,
393836 bytesGracias a Optimizer por guardar 2 bytes.
Pruébalo aquí.
Mismo recuento de bytes:
Esto requiere la última versión, disponible en ¡ Pruébelo en línea!
fuente
Python 2,
87847875 bytesPruébalo en línea
Una versión anterior usa algo de magia de cuerdas.
Lanzar
range(1,10)
a una cadena da[1, 2, 3, 4, 5, 6, 7, 8, 9]
, y esto es bueno ya que cada número es solo un dígito. Entonces obtener la cadena123456789
de esto es simple con`range(1,10)`[1::3]
. El rango inverso es`range(1,10)`[-2::-3]
. Luego, para llegar tan lejos como quiera cada iteración, lo corto en cualquiera de los dos dígitos3*n
, o en3*(9-n)
(27-3*n
).fuente
for n in range(1,10):print"%9s"%s[:n]+" x 8 + %s = "%n+s[::-1][:n]
por 80 bytes.s="123456789";n=1;exec'print"%9s"%s[:n],"x 8 + %s ="%n,s[::-1][:n];n+=1;'*9
ahorra tres más! Hasta 75.Perl, 49 bytes
Uso
fuente
Ruby,
77736560 bytesPruébalo en línea ~
Renovaciones importantes de @manatwork
Otra revisión de @xsot
fuente
puts'%9d x 8 + %d = %d'%[k=[*1..i]*'',i,k.to_i*8+i]
.(1..9).map
→1.upto(9)
%9d
ser una opción de formato para rellenar enteros como esea=i=0;9.times{puts"%9d x 8 + %d = %d"%[a=a*10+i+=1,i,a*8+i]}
Java 10,
151133130129126110 bytesPruébalo en línea.
Explicación:
fuente
x
lugar del signo de multiplicación.s
a"\n"
y la eliminación"\n"+
delfor
bucle×
es de 2 bytes en lugar de 1 comox
..s
al resultado en cada iteración también?return o
lugar deSystem.out.print(o)
? Además, puede cambiar a Java 10 y guardar convar
y lambdasC, 74 bytes
fuente
C #, 113 bytes
Si de todos modos tiene que mejorar esta solución, no dude en compartirla.
fuente
;n=10*n+ ++i
en el bucle for puede cambiarse a;n=++i+10*n
. Además,+" x "+"8 + "+
se puede cambiar a+" x 8 + "+
. para guardar 3 bytes más.Lote, 117 bytes
Sí, eso es 16% signos en una línea; eso es Batch para ti!
fuente
Haskell, 92 bytes
Cómo funciona:
fuente
Retina , 66 bytes
El recuento de bytes asume la codificación ISO 8859-1. El avance de línea principal es significativo.
Pruébalo en línea!
fuente
Pyke,
3029 bytesPruébalo aquí!
fuente
PowerShell v2 +,
8564585752 bytesBucles de 8 a 0 a
8..0|%{...}
través del operador de rango. En cada iteración, generamos una concatenación de cadenas que consiste en (el número apropiado de espacios" "*$_
), más una-join
cadena ed de (un rango desde1
un número auxiliar pre-incrementado++$i
, más el bit medio" x 8 + $i = "
, más el rango final desde9
el número actual$_
pre -incrementado).Un gran truco aquí es que aprovechamos la "preferencia a la izquierda" para la conversión de texto, que nos permite "agregar" matrices juntas dentro de los elementos
-join
parentales, lo que significa que usamos un solo-join
operador.Ejemplo
fuente
%{
¿Están bien tus ojos?MATL ,
383635 bytesPruébalo en línea!
fuente
J, 51 bytes
Crea la cadena
123456789
y luego opera con prefijos y sufijos para crear la salida.Uso
fuente
JavaScript ES6 (88)
Aprovechando el nuevo
repeat
método, backticks y plantillas ...fuente
alert
lugar deconsole.log
, ¡puede ahorrar algunos bytes!R,
107103bytesSin golf:
Resultado:
fuente
APL (Dyalog Unicode) ,
615239 bytes SBCSPruébalo en línea!
-9 bytes usando el
10⊥
truco para analizar el número, en lugar de una reducción. ¡Gracias a @ Adám por -13!Explicación:
fuente
JavaScript (ES6), 99 bytes
Donde
\n
representa un carácter de nueva línea literal. La segunda versión genera una nueva línea final. Se me ocurrió una fórmula para los números,('1'.repeat(9-i)+0+i)/9
pero el relleno fue más fácil de hacer de esta manera.fuente
Brainfuck , 232 bytes
Pruébalo en línea!
Se puede jugar mucho más al golf ...
fuente
Javascript (usando una biblioteca externa) (143 bytes)
Enlace a lib: https://github.com/mvegh1/Enumerable/
Explicación del código: cree un rango de 1 a 9 y, para cada valor, escriba una línea correspondiente al predicado complejo. Al predicado se le pasa el valor entero actual y crea un rango que abarca los elementos 10-currentValue para crear tantos espacios. Esos espacios se concatenan con la parte de fórmula de la línea, y luego se concatenan con el final del rango que coincide con el número de elementos como la interfaz, en orden inverso.
Nota: En la imagen, la primera línea está apagada por un espacio porque la consola agregó una comilla ya que el valor de retorno es una cadena. El valor real está formateado correctamente
fuente
05AB1E , 24 bytes
Pruébalo en línea!
Utiliza una versión más nueva que el desafío, que ahora está permitido.
fuente
©
, y cambiar el®
quey
para guardar un byte.Lienzo , 20 bytes.
Pruébalo aquí!
fuente
VBA (Excel), 51 bytes
Usar ventana inmediata
fuente
k (77 bytes)
Probablemente podría acortarse un poco más
Ejemplo:
fuente
golflua, 56 caracteres
Ejecución de muestra:
fuente