Tamanhos de papel ISO definidos:
Os tamanhos de papel da série A são definidos pelos seguintes 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.
Tarefa:
dada uma f[n]
saída de entrada A0 dividida em n
subdivisões.
Casos de teste:
f[1]
para f[12]
:
Aqui, A0 é dado por f[1]
, mas essa indexação não é essencial.
Critérios de vitória:
O código mais curto em bytes vence.
code-golf
graphical-output
recursion
Martin
fonte
fonte
f[2]
ser umA0
com uma linha horizontal dividindo-o? ou seja, não estáf[2]
realmente no caso de testef[3]
?Respostas:
BBC BASIC 49 caracteres ASCII
Tamanho do arquivo tokenizado 44 bytes
Muito mais curto do que antes! Eu sempre esqueço os operadores de deslocamento de bits do BBC BASIC para Windows, pois eles não estavam disponíveis no meu computador antigo naquela época.
BBC BASIC 63 caracteres ASCII
Tamanho do arquivo tokenizado 58 bytes
Intérprete Dowload em http://www.bbcbasic.co.uk/bbcwin/download.html
Usa indexação zero, o que eu prefiro. Assim, 0 gera o papel para A0, 1 gera A0 dividido em um par de A1s, etc.
É necessário alternar entre as coordenadas X e Y pela metade, mas fazer isso em uma matriz custaria muitos bytes. Em vez disso, uso o fato de que o BBC basic possui um bloco de variáveis inteiras estáticas
A%..Z%
de 4 bytes, cada um armazenado na memória contígua. I armazenar os valores de X e Y emA%
eC%
e de acesso utilizando o ponteiro para%B
modificado pelo valor de d, o qual alterna entre4
e-4
.Ungolfed
Resultado
fonte
JavaScript (ES6) + HTML,
9694 + 34 =130128 bytesfonte
Mathematica,
8785 bytesObrigado @martin por 1 byte.
fonte
EdgeForm@Thin
: -1 byteJavaScript (ES6) / SVG (HTML5), 170 bytes
Usa indexação baseada em 1.
fonte