アスタリスクの三角形を描く


57

プログラミング101のタスクに触発されたタスクは、あまりにも簡単ではないか、重複していることを願っています(このようなものを検索するのは難しいです)。

入力:

  • 正の整数n >= 1

出力:

  • n アスタリスクの行。すべての新しい行には、前の行よりも1つ多くアスタリスクがあり、最初の行には1つのアスタリスクが付いています。

一般的なルール:

  • これはコードゴルフなので、バイト単位の最短回答が勝ちです。
  • このコースはC ++で教えられているので、C ++で解決策を見たいと思っています。

テストケース(n = 5):

*
**
***
****
*****

6
複製ではなく、直角三角形生成のサブセットのみ。
マナトワーク

2
各行にトレーニングスペースはありますか?
ルイスメンドー

2
末尾の改行は受け入れられますか?
16年

1
主要な改行は許可されますか?
ライリー

理由がわからない。
シックボーイ

回答:


41

Vim、8バイト

o <Esc><C-V>{r*J

先読みバッファーで入力を取得するため、入力が15の場合、それを入力してから上記のコードを入力します。これは愚かなルールですが、思わすることが許さ。のようなレジスタに入力があった場合"a、あなた@aは前に固執するでしょう(10)。開始ファイルから取得した場合は、D@"代わりに先頭に追加します(11)。

の悪用に依存し:set autoindentます。これは、vimgolf.comルールのデフォルトであり、Vim 8のデフォルトです(とにかく誰もが使用します)。

  • o <Esc>:数値引数を使用して、テキストが空白で始まり、がある場合:set autoindent、Vimは誤動作し、インデントのカスケードを作成します。
  • <C-V>{r*:これらすべてのスペースを*sに変えます。ブロックビジュアルを使用しているため、お粗末なインデント設定がスペースを静かにタブにグループ化しても、適切な数の*sを取得できます。
  • Jo残念ながら、先頭に空白行が残っています。これにより削除されます。

1
この答えは非常に印象的です。私が見た中で最もクールなvim回答の1つ。
DJMcMayhem

1
魚のように見えます。またはロケット。
ステファンBijzitter

1
私は少しひっくり返して、-u NONE自分でこれを見るためにVimを起動しました...うまくいきませんでした。vim8自体ではなくautoindentデフォルトのvimrcでオンになっているようで、手動で有効にしなければなりませんでした。しかし、この答えの創意工夫は嫌いです!しかし、なぜ新しい行ごとに1つのスペースしかないのでしょうか?なぜスペースのみで機能し、他のキャラクターでは機能しないのですか?私はまだそれが:)思わ学ぶことがたくさん持っている
クリスチャン・ロンドーを

で始まるのは最後にO <Esc>必要ありませんJ
プリモ

1
@udioicaの場合、単一の末尾の改行は一般に許容されると見なされます。
プリモ

23

JavaScript(ES6)、31バイト

これには、先​​頭と末尾の両方の改行が含まれます。

s改行のみを含む文字列から始めます。次にn、再帰呼び出しを処理し、各反復でこの文字列の左側にアスタリスクを追加します。すべての中間文字列を連結すると、期待どおりの結果が得られます。

f=(n,s=`
`)=>n?s+f(n-1,'*'+s):s

アスタリスクなし、36バイト

f=(n,s=`
`)=>n?s+f(n-1,atob`Kg`+s):s

どのように機能しますか?
Alexis_A

1
@Alexis_A-簡単な説明を追加しました。
アーナウルド

3
素敵な再帰的な答え。私はあなたが使用するテクニックを考えたことがなかったでしょうs。を使用して、暗号化を少し減らすことができn?s+f(n-1,'*'+s):sます。
ETHproductions

19

05AB1E7 6バイト

CP-1252エンコードを使用します。

'*×.p»

8バイトの非アスタリスクバージョン:

žQTè×.p»

オンラインでお試しください!

説明

入力を使用した例 n = 5

'*      # push "*"
        # STACK: "*"
  ×     # repeat input number times
        # STACK: "*****"
   .p   # get prefixes of string
        # STACK: ['*', '**', '***', '****', '*****']
     »  # join by newlines
        # implicit print

@TheBitByte 10žQSè×.p»は、賞金に必要なものを取得するためのこの答えの論理的な拡張であり、わずか10バイトです。誰も10バイトを破ったら、エミグナに賞金を与えます。
魔法のタコUr

1
@carusocomputing:TžQè×.p»は8バイトです。
エミグナ

まだ言語を学ぼうとして、Tの指示を逃しました。大量のBase2プッシュがあったが、ベース10がなかったのは奇妙だと思った。
魔法のタコUr

@carusocomputing一部のコマンドは、特に別の方法を知っている場合は見逃し
がち

1
@carusocomputing:何を参照しているかわかりません。ここで使用している唯一のリストコマンドはです。»これは、区切り文字を含むリストを文字列にマージするためのコマンドです(これSは台無しになります)。しかし、多くの05AB1Eコマンドはベクトル化します、はい。
エミグナ

15

PowerShell、21バイト

1..$args[0]|%{'*'*$_}

from 1からinput $args[0]にループし、各反復で文字列乗算を使用して、その数の$_アスタリスクの文字列を作成します。Write-Output最後の暗黙のデフォルトの動作はセパレータの改行であるため、無料で取得できます。

PS C:\Tools\Scripts\golfing> .\draw-asterisk-pattern.ps1 5
*
**
***
****
*****

PS C:\Tools\Scripts\golfing> .\draw-asterisk-pattern.ps1 2
*
**

PS C:\Tools\Scripts\golfing> .\draw-asterisk-pattern.ps1 7
*
**
***
****
*****
******
*******

13

パイソン2、37の 34バイト

i=1;exec"print'*'*i;i+=1;"*input()

イデオネ

iに初期化され1ます。
次にexec、次のコード文字列を実行するコマンドがあります。そのため、構築する必要があります。
文字列は次のとおりです"print'*'*i;i+=1;"が、文字列は*文字列よりも優先され、exec最初に文字列を繰り返すように指示しinput()ます。
このexecコマンドは、ループのように動作する長い文字列を実行し、長printさを増やした別の文字列を実行し、再びを使用*して文字を繰り返し、で'*'インクリメントii+=1ます。

Python 3、41バイト:
def f(n):i=1;exec("print('*'*i);i+=1;"*n) ; または
lambda n,i=1:exec("print('*'*i);i+=1;"*n)


13

ゼリー6 5 バイト

”*ẋþY

TryItOnline

どうやって?

”*ẋþY - Main link: n
”*    - literal string "*"
   þ  - form outer product with the dyadic function:
  ẋ   -     repeat list (right input is an implicit range(n), Jelly defaults to 1-based)
            so the outer product is like:
            [[i*'*' for i in range(1,len("*")+1)] for x in range(1,n+1)]
    Y - join with line feeds
      - implicit print

報奨金:
文字序数の検索であるため、no ordinals句が何であるかわかりません。
直接ルックアップはちょうどだろう42Ọẋþ³Yのために7バイトインクルードは- ³私たちの入力を取得する)
ために、短いやや間接的な方法は次のようになり8バイト“)’Ọẋþ³Y-私たちは、ルックアップどこ')'1-インデックスされるゼリーのコードページ、でそう“)’42を生成します。


入力で先頭の0を使用すると、興味深いことが起こります。入力として「0414141」を試してください。私はゴルフの言語が分からないので、どこから説明を始めればいいのかわかりません。
ルーク

私は、文字列が反復可能であるとして、それが文字列として評価され、それゆえに全体にわたる反復していると思うと、彼らはすべての数字(それは例えば、「こんにちは」とエラーになります)されているとして、各文字が整数に評価
ジョナサン・アラン

11

C#、42バイト

f=n=>n<1?"":f(n-1)+"\n"+new string('*',n);

テストケース付きの完全なプログラム:

using System;

namespace DrawAnAsteriskPattern
{
    class Program
    {
        static void Main(string[] args)
        {
            Func<int,string>f= null;
            f=n=>n<1?"":f(n-1)+"\n"+new string('*',n);

            Console.WriteLine(f(5));
        }
    }
}

それは再帰関数なので必要です。
adrianmp

右。見えなかった
チョイス


9

GNU sed25 24 20 + 1(nフラグ)= 21バイト

編集:ライリーのコメントに基づいて4バイト少ない

x;G;:;P;s:\n.:*\n:;t

オンラインでお試しください!

実行例:入力は単項形式であり、sedではこのコンセンサスに基づいて許可されます

me@LCARS:/PPCG$ sed -nf draw_triangle.sed <<< "0000"

*
**
***
****

先行改行が出力に存在しますが、これはOPによって許可されています。

説明:

x;G             # prepend a newline to unary string
:               # start loop
   P            # print first line only
   s:\n.:*\n:   # shift one unary char from 2nd line to 1st, converted to a '*'
t               # repeat

あなたがいる場合P、置換および主要な改行が許可されているRINT前に、あなたは必要ありません/0$/。改行が許可されていない場合でも、でバイトを保存できますx;G;:;/*/P;s:\n.:*\n:;t。主要な改行について尋ねましたが、まだ返事がありません。
ライリー

8

Matlab、26 23バイト

古き良きMatlab ...

@(n)tril(repmat('*',n))

末尾に空白があります。tril下三角行列を与えます。

編集:ルイス・メンドーのおかげで2バイテス保存


あなたは正しい-ありがとう-まだあまり競争的ではない:P
mathause

8

C ++- 92 96バイト

#include<string>
int main(){int n;std::string s;scanf("%d",&n);for(;n--;)puts((s+="*").data());}

オンラインで試す

ゴルフをしていない:

//this one hurts, but c++ strings are mutable
#include<string> 
int main(){
    int n;
    //this one hurts as well
    std::string s; 
    //read input to n
    //longer than 'std::cin>>n', but no #include<iostream> needed
    scanf("%d",&n); 
    // same as 'while(n--)', also characterwise, but way cooler
    for(;n--;) 
        //add a '*' the string
        //data() does the same as c_str()
        //puts automatically adds an '\n'
        puts((s+="*").data()); 
}

+4バイトの場合、「int main(){}」にする必要があります。

true、いまいましい-gcc / ideoneの非標準の動作
Anedar

7

クラゲ12 11 9バイト

\P$'*
  i

オンラインでお試しください!

説明

上記のプログラムは、次の機能的な擬似コードと同等です。

\            P      $       i        '*
map_prefixes(print, reshape(input(), '*'))

$(リシェイプ)は、文字列の作成Nアスタリスクを。\Pリスト(または文字列)を取り、そのプレフィックスのそれぞれをP(印刷)に渡す関数を作成します。したがって、これは文字列を連続1してNアスタリスクに出力します。



6

Brachylog、12バイト

yke:"*"rj@w\

オンラインでお試しください!

これは、後続の改行が許容されることを前提としています

説明

yk                The range [0, …, Input - 1]
  e               Take one element I of that range
   :"*"rj         Juxtapose "*" I times to itself
         @w       Write that string followed by a new line
           \      False: backtrack to another element of the range

末尾の改行なし、15バイト

-:"*"rj:@[f~@nw

オンラインでお試しください!

これは、のすべてのプレフィックスを使用することで機能し"*" × Inputます。


6

Haskell、35 38バイト

nimiによるリストの理解:

f x=unlines[[1..n]>>"*"|n<-[1..x]]

旧版:

f 0=""
f n=f(n-1)++([1..n]>>"*")++"\n"

代替バージョン:

g n=([1..n]>>"*")++"\n"
f n=[1..n]>>=g

([1..n]>>"*")代わりにreplicate n'*'を使用して、バイトを保存できます。また、39バイトしかカウントしません。
ライコニ

素敵な代替バージョン!ただし、バイト数はまだ1であり、38である必要があると思います(たとえば、こちらを参照)。問題は、改行の後f 0=""に1バイトとしてカウントされるが、一部のテキストエディターでは2バイト/文字として表示されることです。
ライコニ

ありがとう!文字数を数えていたときに最初に末尾の改行を追加していたことがわかりました。もう一度その間違いをしないでください!
クレイグ・ロイ

2
リスト内包表記に切り替えることができます:f x=unlines[[1..n]>>"*"|n<-[1..x]]
nimi

6

Pyth、7バイト

VQ*\*hN

@ETHproductionsの おかげで1バイトのノックオフオンラインで試す

@ PIetu1998のテクニックを使用する

6、バイト

j*L*\*S

素敵な答え!あなたは置き換えることができ"*"\*
ETHproductions

@ETHproductions知らなかった、ありがとう!
Dignissimus-スパム16年

マップを使用して別のバイトを削除できます。j*L\*SS範囲を含む、それぞれ*Lに "*"を掛け\*joinに改行を掛ける)Pythは暗黙的なQを最後に挿入します。
-PurkkaKoodari

jm*\*hまた、6バイトです。
hakr14

6

2sable24 11バイト

>G')Ç>çJN×,

オンラインでお試しください!

そして、アスタリスクの兆候はありません!@Emignaのおかげで24から11にゴルフができました

説明:

>G')Ç>çJN×,
>            Push input+1
 G           For N in range (1,input+1)
  ')Ç>çJ     Push '*' by getting ascii code for ')' and adding 1
        Nx,  Print '*' repeated N times

1
いくつかのヒント。õVYIコードに影響を与えることはなく、削除できます。1+はと同じ>です。ループ内でアスタリスクを作成する場合は、削除することもできますUX×内部ループの代わりに使用すると、さらに多くのバイトが節約されます。メソッドを変更せずに、これを11バイト以下に減らすことができます。
エミグナ

1
いいね!私はすぐに編集します
ジェノRacklinアッシャーを

説明を追加してもらえますか?
バッファーオーバーリード

素晴らしいコード、賞金を獲得しておめでとうございます!コミュニティボットは、期限前に賞金を授与するのを忘れていたため、元の50ではなく25のみを授与したようです。
バッファーオーバーリード

1
心配しないでください。100 repマークに到達できてうれしいです。@TheBitByte
Geno Racklin Asher

6

Brain-Flak 75バイト

+3を含む -A

{(({})[()]<{({}[()]<(((((()()()){}()){})){}{})>)}{}((()()()()()){})>)}{}

オンラインでお試しください!


説明:

{(({})[()]<                                                        >)}
#reduce the top element by one until it is 0 after doing the following
#Push this element back on to act as a counter for the next step.
#(counts down from input to 0 we'll call this counter)

           {({}[()]<                          >)}
           #reduce the top element by one until it is 0 after doing the following
           #(counts down from counter to 0)

                    (((((()()()){}()){})){}{})  
                    #push 42 (the ASCII code for *)

                                                 {}
                                                 #pop the counter used to push
                                                 #the right number of *s

                                                   ((()()()()()){})
                                                   #push a 10 (newline)

                                                                      {}
                                                                      #pop the null byte

これには出力にヌルバイトが含まれますか?私はそれが許可されているとは思わない...
破壊可能なレモン

いいえ、ヌルバイトを意味します
破壊可能なレモン

@DestructibleWatermelonええ、そうだと思います。でも簡単に修正できます。ありがとう。
ライリー

6

Dyalog APL、8 バイト

'*'⍴⍨¨⍳

からなるリストをマトリックス化する

'*' 文字列「*」

⍴⍨ 形を変えた

¨ それぞれの

1から引数までの整数。

TryAPLオンライン!


私には8バイトのように見えます。
エリックアウトゴルファー

1
場合は、単一のバイトになります(,⍕⊢)⌸⍳
NGN

@ngnそれはとても賢いです!自分の投稿として投稿してください。あなたは実際にあなたが書いたシングルバイトとしてそれを数えるかもしれません7 bytes<sup>SBCS</sup>
アダム

5

V、8バイト

Àé*hòlÄx

オンラインでお試しください!


ああ、そうÀé hòlÄ
ジョナサンアラン

2
@JonathanAllan Hey、少なくともJellyより読みやすい。(私にとって);)
DJMcMayhem

Jellyのコードページは、かなり整理されていると思います。Lynnが最近作成したwikiのAtomsページのオーバーホールをチェックしてください。
ジョナサンアラン

3
@JonathanAllanええ、私はそれを信じます。似ていないように見えるかもしれませんが、Vのニーモニックは、vimに入力するために使用するキーがあるため、よく整理されています。したがって、vim-key lingoでの私のソリューションは<M-@><M-i>*h<M-r>l<M-D>x(mはメタを表し、altを意味します)。これらはすべて、コマンドが実行する内容のかなり良いニーモニックです。
DJMcMayhem


5

Perl 6、23バイト

{.put for [\~] '*'xx$_}

(出力を改行なしの「行」のリストにすることが許可されている場合は.put for 削除できます)

説明:

# bare block lambda with implicit parameter 「$_」
{
  .put            # print with trailing newline
    for           # for every one of the following
      [\~]        # produce using concatenation operator
        '*' xx $_ # list repeat '*' by the input
}

produce[\~] ...をしているか分からない場合はドキュメントを参照してください)


5

Perlの5、22の、20バイト

say"*"x$_ for 1..pop

-Eを取得するにはスイッチで実行しますsay

$ perl -E 'say"*"x$_ for 1..pop' 5
*
**
***
****
*****

完全なプログラムとして作成された場合、次のようになります。

use strict;
use feature 'say';

# get the argument
my $limit = pop @ARGV;

foreach my $i (1 .. $limit) { 
    say "*" x $i; 
}

コマンドラインスイッチに余分なバイトが必要かどうかわかりません。
シンバク

-Eフラグは1バイト余分にカウントされると思います。
ETHproductions

パラメーターの代わりに入力として数値を使用するのはどうですか?perl -E 'say"*"x$_ for 1..<>' <<< 5
マナトワーク

@manatworkええ、うまくいくでしょう。私は数えるのが苦手です。それが許可されているかどうかはわかりません。
シンバク

1
-E-eとにかく必要なものを置き換えるので)無料です。本当にコマンドラインから番号を取得したい場合<>(1バイト短くても許可されていpopなくても)、代わりにshift(2バイト短く)を使用する必要があります!とにかく、PPCGにようこそ。
ダダ

5

Perl、19バイト

@Ton Hospelとソリューションの彼の手直しのおかげで-4バイト!

eval"s//*/;say;"x<>

実行するにはフリー-E(または-M5.010)フラグが必要です。入力から数値を取得します:

perl -E 'eval"s//*/;say;"x<>' <<< "5"

1
解決策evalと同じ長さを作成できforます(<>代わりにを使用popeval"s//*/;say;"x<>
Ton Hospel

@TonHospel Ineed、いいね!ありがとう!
ダダ

5

J、11 8バイト

マイルのおかげで3バイト節約できました!

]\@#&'*'

分解は次のとおりです。

(]\@#&'*') x
x (]\@#) '*'
]\ (x # '*')

さて、この最後のものは「]\xコピーからなる文字列のプレフィックス()」として読みます'*'。観察する:

   5 ]\@# '*'
*
**
***
****
*****
   ]\ 5# '*'
*
**
***
****
*****
   ]\ 5 # '*'
*
**
***
****
*****
   ]\@#&'*' 5
*
**
***
****
*****

テストケース

   f =: ]\@#&'*'
   f 3
*
**
***
   f 5
*
**
***
****
*****
   f 1
*
   f 2
*
**
   f &. > ;/1+i.10
+-+--+---+----+-----+------+-------+--------+---------+----------+
|*|* |*  |*   |*    |*     |*      |*       |*        |*         |
| |**|** |**  |**   |**    |**     |**      |**       |**        |
| |  |***|*** |***  |***   |***    |***     |***      |***       |
| |  |   |****|**** |****  |****   |****    |****     |****      |
| |  |   |    |*****|***** |*****  |*****   |*****    |*****     |
| |  |   |    |     |******|****** |******  |******   |******    |
| |  |   |    |     |      |*******|******* |*******  |*******   |
| |  |   |    |     |      |       |********|******** |********  |
| |  |   |    |     |      |       |        |*********|********* |
| |  |   |    |     |      |       |        |         |**********|
+-+--+---+----+-----+------+-------+--------+---------+----------+

古い、11バイトのソリューション

'*'#~"+1+i.

これは同等です

'*' #~"0 1 + i.

1 + i.は範囲[1, x]です。次に、'*' #~"0この範囲に適用され'*'ます。

ボーナスプログラム:

[:#&'*'\#&1

これは、入力の#&'*'\結果に適用されるキャップ付きフォーク#&1です。#&1配列与えxたもの、および#&'*'\形状を'*'この配列の接頭辞に。

テストケース

   f1 =: '*'#~"+1+i.
   f2 =: [:#&'*'\#&1
   f1 1
*
   f2 2
*
**
   f1 3
*
**
***
   f2 4
*
**
***
****
   f2 5
*
**
***
****
*****
   f1 5
*
**
***
****
*****
   (f1;f2)3
+---+---+
|*  |*  |
|** |** |
|***|***|
+---+---+
   f1;f2
f1 ; f2
   (f1;f2)5
+-----+-----+
|*    |*    |
|**   |**   |
|***  |***  |
|**** |**** |
|*****|*****|
+-----+-----+
   (f1;f2)10
+----------+----------+
|*         |*         |
|**        |**        |
|***       |***       |
|****      |****      |
|*****     |*****     |
|******    |******    |
|*******   |*******   |
|********  |********  |
|********* |********* |
|**********|**********|
+----------+----------+

また、文字列の接頭辞得ることができるnのコピーを'*'使用して8バイトのために]\@#&'*'
マイル

@miles:別の9バイトバージョン:'*'"0\@i.
ジョナ

5

Vimは、22、18回のキーストローク

O <esc>J:h r<cr>lyEZZ<C-v>{@"

@Udioicaには、私が拡張したすばらしいvimの答えを考え出した功績があります。この回答には、賞金を獲得するためのアスタリスクは含まれていません。

説明:

入力は、プログラムの残りの前に入力されます。Udioicaはこの素晴らしいトリックを思いつきました。有効に<n>O <esc>した場合、入力するとスペースのピラミッドと空の行が作成されます:set autoindent。このオプションはvim 8およびneovimでデフォルトでオンになりますが、vimの古いバージョンではありません。これにより余分な行も作成さJれるため、この行を次の行と結合するために使用します。これにより、下の行が効果的に削除されます。

ここで、これらすべてのスペースをアスタリスクに置き換える必要があります。コード内でアスタリスクを使用することを心配していなければ、全体を視覚的に選択し、選択範囲の各文字をアスタリスクに置き換えるだけ<C-v>{で入力r*します。しかし、それはできません。

そこで、ヘルプページを開きます:h r。これに関する興味深い点は、vim-windowで、このページが次のように表示されることです。

                            r
r{char}         Replace the character under the cursor with {char}.
                ...

最初の「r」にカーソルを置きます。ただし、実際にはファイル自体に次のテキストが含まれています。

                            *r*
r{char}         Replace the character under the cursor with {char}.
                ...

とても便利です。そのため、で1文字上を移動しl、テキストr*をヤンクしますyE([y] ankはこの単語の[E] ndになります)。

このバッファを閉じるには、ショートカットを使用してファイルを保存しますZZ。ここで、スペースを視覚的に選択し、で入力したかのようにヤンクしたテキストを実行します@"。これは、「@」が次のレジスタをvimキーストロークとして実行し、「」がヤンクのデフォルトレジスタであるために機能します。


それがどのように機能するかを説明する気ですか?
corvus_192

@ corvus_192より広範な説明を追加し、ゴルフをいくつかオフにしました。
DJMcMayhem

データファイルのサイズをバイトカウントに追加する必要はありませんか?
アロス

ヘルプファイルのサイズは@aross?いいえ、このファイルはvimと一緒にインストールされ、デフォルトの機能であるためです。
DJMcMayhem

5

C、47 46 45 43バイト

コマンドラインから入力を取得します

f(n){for(n&&f(n-1);~n;putchar(n--?42:10));}

基本的に、nが0でない場合、n-1で再帰します。nが0の再帰の先頭では、改行のみが出力され、nが-1または〜nが0の場合はforループが終了します。それ以外の場合は、 '*'のASCII 42が出力されます。イデオンで試してみてください

iostreamを含めるためのC ++ 58バイト+ 19は77

#include<iostream>
int f(int n){for(n&&f(n-1);~n;std::cout<<(n--?"*":"\n"));}

main(c,v)char**v;
{
    f(atoi(v[1]));
}

a.exe 3
*
**
***

私には次のように動作するようです&&n?f(n-1):0n&&f(n-1)
マナトワーク

@manatworkありがとう。別のバイトを保存
-cleblanc

ideoneでは、最後に2つの三角形の表示があり、さらに '\ n'が1つあります。* ** *** * ** *** **** ***** revursion、もう1つを印刷します。\ n
RosLuP

@RosLupはい、先頭と末尾の改行を印刷しています。OPは彼のコメントでそれでいいと言ったと思う。
cleblanc



4

Cubix、22バイト

?(.;I:^;/-.@o;(!\>'*oN

オンラインでテストしてください!末尾の改行を出力します。

最初は、2キューブに収まるかどうかはわかりませんでしたが、最終的にはうまくいきました。

    ? (
    . ;
I : ^ ; / - . @
o ; ( ! \ > ' *
    o N
    . .

時間があるときに説明を追加しますが、できれば今日の後半に。


いつかすぐに説明?:P
FlipTack
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.