국제 표준 용지 크기의 출력 세분


11

ISO 용지 크기 정의 :

A 시리즈 용지 크기는 다음 요구 사항에 따라 정의됩니다.

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.

여기에 이미지 설명을 입력하십시오

직무:

입력 f[n]출력 A0을 n세분화 로 나눕니다 .

테스트 사례 :

f[1]~까지 f[12]:

여기에 이미지 설명을 입력하십시오

여기서 A0은에 의해 제공 f[1]되지만이 색인은 필수는 아닙니다.

우승 기준 :

바이트 단위의 가장 짧은 코드가 이깁니다.


1
f[2]가 될 A0나누어 수평 라인? 즉, f[2]테스트 케이스에 실제로 f[3]있지 않습니까?
JungHwan Min

@JungHwanMin 조정 됨
martin

답변:


2

BBC BASIC 49 ASCII 문자

토큰 화 된 파일 크기는 44 바이트

I.n:F.i=0TOn:RECTANGLE0,0,1189>>i/2+.5,841>>i/2N.

이전보다 훨씬 짧습니다! BBC BASIC의 비트 시프트 연산자는 윈도우 용 컴퓨터에서 사용할 수 없었던 Windows 용 비트 시프트 연산자를 항상 잊어 버립니다.

BBC BASIC 63 ASCII 문자

토큰 화 된 파일 크기 58 바이트

http://www.bbcbasic.co.uk/bbcwin/download.html의 Dowload 인터프리터

A%=841C%=1189d=4I.n:F.i=0TOn:RECTANGLE0,0,C%,A%:d!^B%/=2d=-d:N.

선호하는 제로 인덱싱을 사용합니다. 따라서 0은 A0의 용지를 출력하고, 1 개의 출력 A0은 한 쌍의 A1로 나눕니다.

X와 Y 좌표를 절반으로 줄이려면 번갈아 가야하지만 배열에서 그렇게하면 너무 많은 바이트가 필요합니다. 대신 BBC 기본에는 A%..Z%인접한 메모리에 각각 4 바이트 의 정적 정수 변수 블록이 있다는 사실을 사용합니다 . I는 상기 X 및 Y 값을 저장 A%하고 C%포인터를 사용하여 액세스 %B(D)의 값에 의해 번갈아 수정 4하고 -4.

언 골프

  A%=841
  C%=1189
  d=4
  INPUTn
  FORi=0TOn
    RECTANGLE0,0,C%,A%
    d!^B%/=2
    d=-d
  NEXT

산출

여기에 이미지 설명을 입력하십시오


4

자바 스크립트 (ES6) + HTML, 96 94 + 34 = 130 128 바이트

f=(n,w=297,h=210)=>n--&&f(n,h<w?w/2:w,h<w?h:h/2,(C=c.getContext`2d`).rect(0,0,w,h),C.stroke())

f(8)
<canvas id=c width=300 height=300>


2

매스 매 티카, 87 85 바이트

1 바이트에 대해 @martin에게 감사드립니다.

Graphics@{EdgeForm@Thin,White,Rectangle[#,0{,}]&/@NestList[Sort[#/a]&,{1,a=√2},#]}&

아주 좋아요! EdgeForm@Thin: -1 바이트
martin

2

자바 스크립트 (ES6) / SVG (HTML5), 170 바이트

a=prompt();document.write('<svg width=297 height=210>');for(w=297,h=210;a--;h>w?h/=2:w/=2)document.write(`<rect fill=none stroke=#000 x=0 y=0 width=${w} height=${h} />`);

1 기반 인덱싱을 사용합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.