초콜릿 바를 먹어


11

나는 초콜릿 바가 있고 그것을 먹는 데 도움이 필요하므로 그렇게하기 위해 프로그램을 작성하게 될 것입니다.

설명

첫 번째 줄은 입력입니다. 예는 빈 줄로 구분됩니다.

7
   ____
 __|__|
|__|__|
|__|__|
|__|__|

6
_______
|__|__|
|__|__|
|__|__|

5
   ____
 __|__|
|__|__|
|__|__|

0


1
   ____
   |__|

투기

희망적으로 예제가이 도전을 명확하게 지정하지만 혼동을 피하기 위해 다음과 같은 사양이 있습니다.

단일 선택적인 후행 / 앞 공백을 가질 수 있습니다

의 입력은 0빈 출력입니다.

입력이 짝수 인 경우 맨 위 행은 다음과 같습니다.

_______
|__|__|

홀수 인 경우 맨 위 행은 다음과 같습니다.

   ____
   |__|

홀수이고 1보다 크면 맨 위 행은 다음과 같습니다.

  ____
__|__|

다음과 같은 행이 있습니다.

|__|__|

의 인스턴스 수가 |__|입력과 동일 할 때까지


입력에 대한 출력은 무엇입니까 1? 입력을 0지원해야 합니까 ?
Doorknob

@Doorknob 예, 도전을 업데이트했습니다
Downgoat

1. 기능을 제출할 수 있습니까? 2. STDIN / 함수 인수로부터 입력을받을 수 있습니까? 3. 하나 또는 모든 이터 레이션을 출력해야합니까?
yyny

@YoYoYonnY 예, 기본적으로 가능합니다 (이 링크는 두 번째 질문에도 답변합니다) . 반복의 의미가 무엇인지 잘 모르겠습니다. 예를 살펴보십시오. 출력
만하면됩니다

선행 빈 줄이 허용됩니까?
Neil

답변:



4

하스켈, 101 바이트

Haskell은 코드 골프에 적합하지 않았습니다 ...

b="\n|__|__|"
h="   ____\n "
f 1=h++"  |__|"
f 2="_______"++b
f 3=h++"__|__|"++b
f n=f(n-2)++b
f _=""

그것은 당신이 그것을 보는 방법에 달려 있습니다. Java> Python> Haskell> GolfLang. 나는 파이썬을 사용한다;)
J Atkin

@JAtkin 내 PHP 답변을 살펴보면 최악
timmyRS

3

자바 스크립트 ES6, 80 바이트

x=>(x%2?`   ____
 ${x<2?"  ":"__"}|__|`:x?"_______":"")+`
|__|__|`.repeat(x/2)

내 Japt 답변과 동일한 기술을 사용하며 놀랍게도 더 이상은 아닙니다 ...


1

C, 104102 바이트

f(x){x?x%2?printf("   ____\n%3s|__|\n",x<2?"":"__"):puts("_______"):0;for(x/=2;x>0;x--)puts("|__|__|");}

어쩌면 나는 이것을 개선하기 위해 printf 속임수를 사용할 수 있습니다 ...
분명히 나는 ​​할 수 있습니다


1

𝔼𝕊𝕄𝕚𝕟, 53 자 / 67 바이트

ï%2?`   ⟮__⟯Ⅰ
 ⦃ï<2?⍞  :⍞Ⅰ⦄|Ⅰ|`:ï?⍘_ď7:⬯⦄
|Ⅰ|Ⅰ|`ď ï/2

Try it here (Firefox only).

이것은 독립적으로 찾았지만 Javascript ES6 답변과 매우 유사합니다. 골프를 마치면 올 설명.


1

PHP, 134 자

<?$i=$argv[1];if($i>0){echo($i%2===0?"_______\n|__":"   ____\n".($i>1?"___":"   "))."|__|\n";echo str_repeat("|__|__|\n",($i-1)/2);}?>

메모:

  • PHP는 코드 골프 용으로 제작되지 않았습니다
  • 나는이 스 니펫을 만드는 재미있었습니다.
  • argv가 정의되지 않으면 오류가 발생합니다.
  • 그것을 단축하는 데 도움이됩니다.


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