どう書く?面白い。
投稿しない
ただ解くだけで面白いし。
ピラミッドを作る
def f1 n; seed=(1..n).map{|i| "*" * (2*i-1))} width=seed[-1].length seed.each{|e| puts e.center(width)} end f1 4 #=> # * # *** # ***** #*******
与えられた文字列でピラミッド
def f2_1(str) n=(2*str.length-1) (str.length-1).downto(0) {|i| puts str.slice(i..-1).split(//).join(" ").center(n)} end def f2_2 str seed=(1..str.length).map{|i| str[-i..-1].split(//).join(" ")} width=seed.last.length seed.each {|e| puts e.center(width)} end def f2_3 str require "abbrev" seed=Abbrev.abbrev(str.reverse).keys.sort.map{|e| e.reverse.split(//).join(" ")} width=seed.last.length seed.each {|e| puts e.center(width)} end (1..3).each{|i| send("f2_"+i.to_s,"hoge")} #=> # e # e # e # g e # g e # g e # o g e # o g e # o g e #h o g e #h o g e #h o g e #縦のものを横に変更してます。
abbrevを使ったほうがめんどうになった…。
疑問
そういえば、最初の部分が、
1…" e \n" 2…" e\n"
で少しだけ意味合いが違ってくるかもとか思いました。