チャレンジ
私たちは皆、通常のクリスマスツリーについて知っていますが、逆さまのクリスマスツリーについてはどうでしょうか。これはかなり簡単な、クリスマスをテーマにした挑戦です。このチャレンジの目的は、私をASCIIの逆さまのクリスマスツリーにすることです。このチャレンジのルールは次のとおりです。
- 奇数の正の整数を受け入れます。常にとの間にある
7
と仮定でき51
ます。 ツリーのベースは、次の文字で構成されます。
___ \ / |
ツリーの上部(星)は、単一ので構成され
*
ます。ツリーの各ラインの形式使用して構築される任意の数であるSを。たとえば、長さの行を作成する場合、行はである必要があります。または、長さの行を作成する場合、行は。
<?>
?
-
5
<--->
8
<------>
以下にツリーのボディを構築する方法を示します。
n
入力として与えられた奇数を取り、その長さの木の線を作成します。減算
4
からn
、その長さの木の行を作成します。減算
2
からn
、その長さの木の行を作成します。n
による減少2
。その後、n
等しく5
ない限り、手順2に戻ります。
ベース(ステップ2を参照)、星(ステップ3を参照)、ツリーの各行(ステップ4および5を参照)はすべて、元の奇数入力(ステップ1を参照)を最大として中央に配置する必要があります。幅。
例/テストケース
odd number inputed: 7
___
\ /
|
<-----> line length -> 7
<-> line length -> 7 - 4 = 3
<---> line length -> 7 - 2 = 5
*
odd number inputed: 13
___
\ /
|
<-----------> line length -> 13
<-------> line length -> 13 - 4 = 9
<---------> line length -> 13 - 2 = 11
<-----> line length -> 11 - 4 = 7
<-------> line length -> 11 - 2 = 9
<---> line length -> 9 - 4 = 5
<-----> line length -> 9 - 2 = 7
<-> line length -> 7 - 4 = 3
<---> line length -> 7 - 2 = 5
*
odd number inputed: 9
___
\ /
|
<-------> line length -> 9
<---> line length -> 9 - 4 = 5
<-----> line length -> 9 - 2 = 7
<-> line length -> 7 - 4 = 3
<---> line length -> 7 - 2 = 5
*
odd number inputed: 17
___
\ /
|
<---------------> line length -> 17
<-----------> line length -> 17 - 4 = 13
<-------------> line length -> 17 - 2 = 15
<---------> line length -> 15 - 4 = 11
<-----------> line length -> 15 - 2 = 13
<-------> line length -> 13 - 4 = 9
<---------> line length -> 13 - 2 = 11
<-----> line length -> 11 - 4 = 7
<-------> line length -> 11 - 2 = 9
<---> line length -> 9 - 4 = 5
<-----> line length -> 9 - 2 = 7
<-> line length -> 7 - 4 = 3
<---> line length -> 7 - 2 = 5
*
ルール
- 標準的な抜け穴が適用されます。
- これはcode-golfなので、バイト単位の最短回答が勝ちです!
repeat the above steps until the odd number minus 2 equals 5
-最初の入力で、奇数したがって、ツリーはすぐに終了すべき、7、および= 5 7-2である(私はあなたが何を意味するか知っているが、それは言い換えが必要)
7
が最小入力の場合、最初に3本のツリーライン(サブステップ.1.1、.1.2、.1.3)を作成し、次に2
奇数から減算して、等しいかどうかをテストし5
ます。「奇数から2を引いた値が5に等しい」かどうかを確認する命令は最後にあります。他の3つのステップを最初に実行する必要があります。しかし、あなたの最初のコメントに答えるために、それは問題ないでしょう。
7
入力として受け入れる必要があるかどうかを尋ねていると思います。4
3