ピラミッドスキームの否定


13

私の言語のPyramid Schemeには、少し面白い構成があります:空の三角形:

^
-

引数が与えられない場合、を返します01この構成を使用して生成するには、これを使用できます。

   ^
  /!\
 ^---
 -

これは単純に0否定関数に渡されます。この結果を否定し続けることができます:

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

0を取得するには、もう1つの否定が得られます。

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

チャレンジ

整数所与N ≥1、出力ネゲートされる空のピラミッドNを記載の方法で回。

テストケース

input
output

1
   ^
  /!\
 ^---
 -

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

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

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

ここで否定とは、ビット単位の補数(~)を意味すると思いますか?
user202729

@ user202729いいえ、通常の否定を意味します。
コナーオブライエン

したがって、C / C ++ !not)です。
-user202729

@ user202729はい。それが意味することは問題の正接であるが
コナーオブライエン

1
/!\警告!/!\警告三角形が随所に表示されます!
RedClover

回答:


7

、17バイト

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

オンラインでお試しください!リンクは、コードの詳細バージョンです。説明:

FN«

適切な数の否定をループします。

↙^→/!\¶³

否定関数を出力します。(に³展開します---ます。)

‖T

キャンバスを反映します。

»↓^-

ループの最後に、空の三角形を印刷します。


ちょうどfyi、空の三角形は-代わりに使用します_
コナーオブライエン

@ ConorO'Brien指摘してくれてありがとう!私はそれがまったく正しく見えないと思っていましたが、指を置くことができませんでし
ニール


2

JavaScript(ES6)、77 74バイト

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

それを試してみてください:




1

Java 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

Python 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バイト
ミスターXcoder

@ Mr.Xcoderああ、ありがとうございます!
ハイパーニュートリノ

r=="^"できると思いますr>"]"
ジョナサンフレッチ

@JonathanFrechそうですね、ありがとう!
ハイパーニュートリノ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.