削除されたstackoverflowの質問で、誰かが以下を投稿しました:
交番パターンを印刷するプログラムまたは機能を記述*
し、#
指定された整数に基づきますn
。いくつかの例:
入力:n=1
出力:
*
入力n=5
出力:
*####
###**
***##
###**
*####
入力:n=8
出力:
*#######
######**
***#####
####****
****####
#####***
**######
#######*
かなりクールなコードゴルフの挑戦のように見えたので、ここにあります。
これらのパターンはどのように構築されますか?
最初の行はシングル*
で始まり、後続のn-1
量が続き#
ます。
2行目は、2つが含まれている*
と、n-2
大手の量#
。
3行目は3 *
で始まり、その後に続くn-3
量が続き#
ます。
等
中間(n/2
)に達したら、の量で再度カウントします*
。これは上記の例で見ることができます。
入力が奇数の場合、行の逆のペア(最初と最後、2番目と最後から2番目など)はまったく同じであることに注意してください。このn=5
例では、最初と最後の行は*####
;です。最後の行の2番目と2番目の行は###**
です。
ただし、偶数の入力番号の場合、行の逆のペアは逆になります。このn=8
例では、最初と最後の行は*#######
and #######*
です。最後の行の2番目と2番目の行は######**
and **######
です。等
チャレンジルール:
- およびの代わりに、任意の2つの印刷可能な文字を使用できます。and を使用できます。および; および; 等。あなたが使用したものをあなたの回答に明記してください。
*
#
A
B
3
7
<
>
n
正の整数(>= 1
)であると仮定できます。- STDOUTに出力する代わりに、各行の文字列のリスト/配列または文字の2Dマトリックスを出力できます。
一般的なルール:
- これはcode-golfであるため、バイト単位の最短回答が優先されます。
コードゴルフ言語では、非コードゴルフ言語で回答を投稿しないようにしてください。「任意の」プログラミング言語の可能な限り短い答えを考えてみてください。 - 回答には標準的な規則が適用されるため、STDIN / STDOUT、適切なパラメーターと戻り値型、完全なプログラムを備えた関数/メソッドを使用できます。あなたの電話。
- デフォルトの抜け穴は禁止されています。
- 可能であれば、コードのテストへのリンクを追加してください。
- また、回答の説明を追加することを強くお勧めします。
テストケース(最初n=1
からn=10
)
*
*#
#*
*##
#**
*##
*###
##**
**##
###*
*####
###**
***##
###**
*####
*#####
####**
***###
###***
**####
#####*
*######
#####**
***####
###****
***####
#####**
*######
*#######
######**
***#####
####****
****####
#####***
**######
#######*
*########
#######**
***######
#####****
*****####
#####****
***######
#######**
*########
*#########
########**
***#######
######****
*****#####
#####*****
****######
#######***
**########
#########*