우리는 모두 가장 유명하고 영향력있는 난해한 언어 중 하나 인 brainfuck을 알고 있거나 적어도 들어 본 적이 있습니다. 요즘 대부분의 구현에는 무한 테이프가 사용되지만 Urban Müller의 원래 컴파일러에는 30000 개의 셀 테이프가있었습니다. 약간의 알려진 사실 *은 테이프의 끝에 실제로 특별한 brainfuck 프로그램에서 상호 작용하지 않는 특별한 값이 있다는 것입니다.
이 값을 29999 >
초와 a로 인쇄 할 수 있지만 .
brainfuck은 짧고 간결한 솔루션으로 알려져 있으므로이 값을 최소 문자 수로 인쇄하는 것이 목표입니다.
*소설
규칙 :
- brainfuck 지침에 대한 새로 고침 :
+
/-
: 현재 셀 증가 / 감소, 255가 증가하면 255에서 0으로 줄 바꿈<
/>
: 테이프에서 포인터를 좌우로 움직입니다..
: 현재 셀의 값을 인쇄합니다.[
:]
셀의 값이 0이면 해당 항목으로 이동]
:[
셀의 값이 0이 아닌 경우 해당 항목으로 이동
- 이 경우
,
원래 컴파일러는 EOF에서 셀을 변경하지 않고 그대로두기 때문에 아무것도 입력하지 않으며이 프로그램은 입력을받지 않아야합니다. - 테이프는 알 수없는 값을 포함하는 셀 30000을 제외한 모든 0으로 처음 채워집니다.
- 포인터는 셀 1에서 시작하여 셀을 인쇄 한 셀 30000에서 끝나야합니다.
- 1의 왼쪽과 30000의 오른쪽에있는 셀에는 정의되지 않은 동작이 있으므로 솔루션 이이 셀을 방문 하지 않아야합니다 .
- 참고 30000의 값이 있다는
것이다0이 아닌 세포가 작동하지 않습니다 칠 때까지 그렇게 단순히 반복, 0이 될 수 있습니다. - 당신은 인쇄해야 에만 세포 30000의 값을
- 가장 짧은 솔루션이 승리합니다!
- 타이 브레이커 (Tie-breaker)는보다 효율적인 프로그램이며 (최소 단계로 실행) 가장 빠른 제출 시간이 뒤 따릅니다.
팁 : Esolanging Fruit는 https://copy.sh/brainfuck 을 사용하여 코드를 테스트 할 것을 제안 합니다. 사양은이 문제에 설명되어 있으며 abort
프로그램이 범위를 벗어나면 중지되도록 옵션을 선택할 수 있습니다 .
.
. 내가 이겼다.