yuin #774(2007/07/13 16:59 GMT) [ Scala ] Rating0/0=0.00
出遅れた・・・のでちょっと変わったやり方で。二桁以上にも対応。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
def amida(n:Int):Unit = { val rep = {(s:String, n:Int) => List.make(n,s).mkString("")} val w = n.toString.length val r = List.range(0,n).map(x => x+rep(" ",(w-x.toString.length))) val lst = List.range(0, n-1).map(y => { List.range(0,n*2-1).map(x => { if(x%2==0) "|" else if((y-x/2)%2==0&&x/2<=y) rep("_",w) else rep(" ",w) }) }).map(_.mkString("")) r.mkString(" ")::lst:::lst.take(n-2).reverse foreach(println) println(lst(0).replace('_',' ')+"\n"+r.reverse.mkString(" ")) } amida(10)
Rating0/0=0.00-0+
[ reply ]
yuin
#774()
[
Scala
]
Rating0/0=0.00
def amida(n:Int):Unit = { val rep = {(s:String, n:Int) => List.make(n,s).mkString("")} val w = n.toString.length val r = List.range(0,n).map(x => x+rep(" ",(w-x.toString.length))) val lst = List.range(0, n-1).map(y => { List.range(0,n*2-1).map(x => { if(x%2==0) "|" else if((y-x/2)%2==0&&x/2<=y) rep("_",w) else rep(" ",w) }) }).map(_.mkString("")) r.mkString(" ")::lst:::lst.take(n-2).reverse foreach(println) println(lst(0).replace('_',' ')+"\n"+r.reverse.mkString(" ")) } amida(10)Rating0/0=0.00-0+
[ reply ]