challenge LL Golf Hole 8 - 横向きのピラミッドを作る

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

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

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

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

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

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

Posted feedbacks - Python

84byte
Pythonがなかったので、素直なやつだけでも。
3項演算を使っているので、Python2.5以上です。
1
2
3
import sys
n=int(sys.argv[1])*2
for i in xrange(1,n):print "*"*(i if i<n/2 else n-i)

1
2
def f(n):
  for i in range(1,n)+range(n,0,-1):print"*"*i

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
def pyramid(n):
  line(0, n)

def line(m, n):
  print '*' * m
  if m < n:
    line(m+1, n)
    print '*' * m

pyramid(4)

ああ、デフォルト使えばもっとシンプルだった。 しかし再帰のコードがあまりに少ないなぁ・・・。変なの。

1
2
3
4
5
def pyramid(n, m=0):
  print '*' * m
  if m < n:
    pyramid(n, m+1)
    print '*' * m

ワンライナーPython。63bytes.

1
n=input()*2;print'\n'.join(['*'*min(k,n-k)for k in range(1,n)])

Index

Feed

Other

Link

Pathtraq

loading...