どう書く?org : LL Golf Hole 8 - 横向きのピラミッドを作る

original page : http://ja.doukaku.org/203/

与えられた自然数 n について、横向きで n 段のピラミッドを作ってください。 たとえば、 n に 4
が与えられた場合は以下のようなピラミッドを作ります。

4
*
**
***
****
***
**
*

与える自然数についてはリテラルで与える、標準入力で与える、引数で与えるなどは自由とします。

余力のあるものはこのプログラムを短くしてください。

※LL Future実行委員の高野光弘です。この出題は LL Future公式の出題であり、優れたものについてはLL Golfのセッションでご紹介させていただくかもしれません。ご理解の上、ご投稿ください。また、チケットは現在も発売中のほか、当日券もございます。よろしければ、メインイベントの方にもぜひご参加ください。

n=gets.to_i*2;n.times{|i|puts"*"*(i<n/2 ?i:n-i)}

#7431

original page : http://ja.doukaku.org/comment/7431/

正攻法で文字列処理をすると長くなってしまうので、

少し変則的に文字列処理をしない方向で書いてみました。

n <- 4+1
l=rep("*",n^2);l[cumsum(n-abs(-n:n))]="\n";cat(l)