Tamaños de papel ISO definidos:
Los tamaños de papel de la serie A están definidos por los siguientes requisitos:
The length divided by the width is the square root of 2.
The A0 size has an area of 1 unit.
Each subsequent size A(n) is defined as A(n-1) cut in half parallel to its shorter sides.
Tarea:
dada una entrada f[n]
salida A0 dividida en n
subdivisiones.
Casos de prueba:
f[1]
a f[12]
:
Aquí, A0 viene dado por f[1]
, pero esta indexación no es esencial.
Criterios ganadores:
El código más corto en bytes gana.
code-golf
graphical-output
recursion
martín
fuente
fuente
f[2]
ser unA0
con una línea horizontal que lo divide? es decir, ¿no esf[2]
el caso de prueba en realidadf[3]
?Respuestas:
BBC BASIC 49 caracteres ASCII
Tamaño de archivo tokenizado 44 bytes
Mucho más corto que antes! Siempre me olvido de los operadores de cambio de bits en BBC BASIC para Windows, ya que no estaban disponibles en mi vieja computadora en ese momento.
BBC BASIC 63 caracteres ASCII
Tamaño de archivo tokenizado 58 bytes
Descargar intérprete en http://www.bbcbasic.co.uk/bbcwin/download.html
Utiliza cero indexación, que prefiero. Por lo tanto, 0 genera el papel para A0, 1 genera A0 dividido en un par de A1, etc.
Es necesario alternar entre reducir a la mitad las coordenadas X e Y, pero hacerlo en una matriz habría costado demasiados bytes. En cambio, uso el hecho de que BBC basic tiene un bloque de variables enteras estáticas
A%..Z%
de 4 bytes cada una almacenada en la memoria contigua. Almaceno los valores X e Y enA%
yC%
accedo usando el puntero a%B
modificado por el valor de d, que alterna entre4
y-4
.Sin golf
Salida
fuente
JavaScript (ES6) + HTML,
9694 + 34 =130128 bytesfuente
Mathematica,
8785 bytesGracias @martin por 1 byte.
fuente
EdgeForm@Thin
: -1 byteJavaScript (ES6) / SVG (HTML5), 170 bytes
Utiliza indexación basada en 1.
fuente