피라미드 구성표 부정


13

내 언어 Pyramid Scheme 에는 약간 재미있는 구성이 있습니다. 빈 삼각형 :

^
-

인수가 주어지지 않으면를 반환합니다 0. 1이 구문을 사용하여 생성하려면 다음을 사용할 수 있습니다.

   ^
  /!\
 ^---
 -

이것은 단순히 0부정 기능으로 넘어 갑니다 . 이 결과를 계속 무시할 수 있습니다.

 ^
/!\
---^
  /!\
 ^---
 -

0을 얻으려면. 한 번 더 부정하면 다음과 같습니다.

   ^
  /!\
 ^---
/!\
---^
  /!\
 ^---
 -

도전

정수 n ≥ 1이 주어지면 , 빈 피라미드를 설명 된 방식으로 n 번 부정 된 결과를 출력하십시오 .

테스트 사례

input
output

1
   ^
  /!\
 ^---
 -

2
 ^
/!\
---^
  /!\
 ^---
 -

3
   ^
  /!\
 ^---
/!\
---^
  /!\
 ^---
 -

6
 ^
/!\
---^
  /!\
 ^---
/!\
---^
  /!\
 ^---
/!\
---^
  /!\
 ^---
 -

여기서 부정하면 비트 보수 ( ~) 를 의미한다고 가정 합니까?
user202729 1

아니요, 정기적 인 부정을 의미합니다.
Conor O'Brien 1

C / C ++ !( not)입니다.
user202729 1

@ user202729 예. 그것이 의미하는 것은 문제에 대한 접선이지만
Conor O'Brien

1
/! \ 경고! /! \ 나는 경고 삼각형이 도처에 보인다!
RedClover

답변:


7

, 17 바이트

FN«↙^→/!\¶³‖T»↓^-

온라인으로 사용해보십시오! 링크는 자세한 버전의 코드입니다. 설명:

FN«

적절한 수의 부정을 반복하십시오.

↙^→/!\¶³

부정 기능을 인쇄합니다. (으로 ³확장됩니다 ---.)

‖T

캔버스를 반영하십시오.

»↓^-

루프가 끝나면 빈 삼각형을 인쇄하십시오.


그냥 참고로, 빈 삼각형은 사용 -대신에_
코너 오브라이언

@ ConorO'Brien 지적 해 주셔서 감사합니다! 나는 그것이 옳지 않다고 생각했지만 손가락을 넣을 수 없었습니다 ...
Neil


2

자바 스크립트 (ES6), 77 74 바이트

n=>(s=`^
  /!\\
 ^---`,n%2?`   `+s:` ^`)+`
/!\\
---${s}`.repeat(n/2)+`
 -`

시도 해봐:




1

자바 8, 104 바이트

n->{String r=n%2>0?"   ^\n":" ^\n";for(;n-->0;r+=n%2<1?"  /!\\\n ^---\n":"/!\\\n---^\n");return r+" -";}

설명:

여기에서 시도하십시오.

n->{                       // Method with integer parameter and String return-type
  String r=                //  Result-String, starting at:
           n%2>0?          //  If the input is odd:
            "   ^\n"       //   Start the result at "   ^" + new-line
           :               //  Else (the input is even):
            " ^\n";        //   Start the result at " ^" + new-line
  for(;n-->0;              //  Loop the input amount of times
    r+=n%2<1?              //   If the current row is even:
        "  /!\\\n ^---\n"  //    Append the result-String with "  /!\" + new-line
                           //                                  " ^---" + new-line
       :                   //   Else (the current row is odd):
        "/!\\\n---^\n"     //    Append the result-String with "/!\" + new-line
                           //                                  "---^" + new-line
  );                       //  End of loop
  return r                 //  Return the result-String
          +" -";           //   + " -"
}                          // End of method








0

파이썬 3 , 167 바이트

def f(n):
	g=[[" "]*5for _ in'  '*-~n];a=["^","/!\\","---"]
	for i in range(n):
		for r,R in zip(a,g[i*2:]):R[(i-n)%2*2+(r>"]"):]=r
	g[-2][1]="^";g[-1][1]="-";return g

온라인으로 사용해보십시오!

Mr. Xcoder 덕분에 -4 바이트-Jonathan
Frech 덕분에 -1 바이트


' '*2*n일 수있다 ' '*n(이 두 공간 있지만 eugh ... SE 인하) 다음에,은 및 ' '*n+' '에 의해 대체 될 수 ' '*-~n대해 168 바이트 .
Mr. Xcoder

@ Mr.Xcoder 아 멋져요, 고마워요!
HyperNeutrino

나는 r=="^"될 수 있다고 생각 한다 r>"]".
Jonathan Frech

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