お題5 ASCII Stars

「ワシの星は108バイトで出力できるぞ」http://golf.shinh.org/p.rb?ASCII+Stars

入力例

10

出力例

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

提出

C

murachue @2008.10.15 136bytes gcc4.1.2(@narita)

main(i,j,k,l){scanf("%d",&i);i--;for(j=-i;k=abs(j),j<=i;j++){for(l=k;l>0;l--)printf(" ");for(l=0;l<=(i-k)*2;l++)printf("*");puts("");}}

ごく標準に。
同じく131bytes

main(i,j,k,l){scanf("%d",&i);i--;for(j=-i;k=abs(j),j<=i;j++){for(l=k;l;l--)printf(" ");for(;l<=(i-k)*2;l++)printf("*");puts("");}}

ちょっとけずった
同じく129bytes

main(i,j,k,l){scanf("%d",&i);i--;for(j=-i;j<=i;j++){for(l=k=abs(j);l;l--)printf(" ");for(;l<=(i-k)*2;l++)printf("*");puts("");}}

うーん。

Zauberer @2008.10.27 128bytes gcc4.1.2

i;p(n,m){for(i=0;i<m+n;putchar(++i<m-n?32:42));puts("");}f(n,m){p(n,m);if(n-m+1)f(n+1,m),p(n,m);}main(n){scanf("%d",&n);f(0,n);}

再帰大好き!

Java

masawaki 2008.10.16 356bytes j2sdk 1.6.0_04(WindowsXP)

class a{static{try{int o=Integer.parseInt(new java.io.BufferedReader(new java.io.InputStreamReader(System.in)).readLine()),i=0,m,j;for(;i<o;i++){for(m=2;m<=o-i;m++)o(" ");for(j=0;j<=i*2;j++)o("*");o("\n");}for(i=o-2;i>=0;i--){for(m=o-i;m>=2;m--)o(" ");for(j=i*2;j>=0;j--)o("*");o("\n");}}catch(Exception e){}}static void o(String a){System.out.print(a);}}

Javaはきついよね。もっと短くできるんじゃないかな。

Perl

pachiki 2008-10-17 114byte perl5.8.8 @narita

$a=<STDIN>;for($i=$a-1;abs($i)<$a;$i--){$j=abs($i);for(1..$j){print' ';}for(3..($a-$j)*2+1){print'*';}print"\n";}

pachiki 2008-10-17 81byte perl5.8.8 @narita STDIN書かなくても動くね、pythonみたいに文字列x数で表示できた!

$a=<>;for($i=$a-1;abs($i)<$a;$i--){$j=abs($i);print' 'x$j.'**'x($a-$j-1)."*\n";}

pachiki 2008-10-17 64byte perl5.8.8 @narita はじめのforの中身を変更

$a=<>-1;for(-$a..$a){$j=abs($_);print$"x$j.'**'x($a-$j)."*\n";}

pachiki 2008-10-17 62byte perl5.8.8 @narita absのカッコとっても動いた!

$a=<>-1;for(-$a..$a){$j=abs$_;print$"x$j.'**'x($a-$j)."*\n";}

pachiki 2008-10-18 61byte perl5.8.8 @narita 改行をガチの改行にした

 $a=<>-1;for(-$a..$a){$j=abs$_;print$"x$j.'**'x($a-$j)."*
 ";}

Ruby

Zauberer @2008.10.27 71bytes ruby 1.8.5

m=gets.to_i-1
a=['*'*(m*2+1)]
m.times{a<<a[0,0]=' '+a[0][0..-3]}
puts a

配列を両方向に伸ばしてみた.

Python

PostScript

Zauberer @2008.10.27 113bytes Ghostscript 8.54

/n(%stdin)(r)file token pop 1 sub def
n neg 1 n{abs dup{( )print}repeat
n sub -2 mul 1 add{(*)print}repeat()=}for

明らかに経験値足りてません.

Befunge

Zauberer @2008.10.27 97bytes Befunge-93 v2.21

&1-:00p0\->::00g`#@_:0`#v_0\-v
>67*,2-v*2-\g0_v#!:   <:<    <
^_|#:+1<       >48*,1-^
  >25*,1+ v

基本的にはPostscriptから移植.(3,3)の|がステキ.

  • HTML
  • PDF
RSS2.0 RSS1.0 Atom1.0