Problem:
そろばん

そろばんを習い始める友人からのお願いで、あなたはそろばんの珠の並び
を表示するプログラムを作成することになりました。ある数字を入力として、そろばんの珠の並びを出力するプログラムを作成してください。ただし、表示するそろばんの桁数は 5 桁とし、0 から 9 までの珠の配置はそれぞれ '*' (半角アスタリスク)、' ' (半角空白)、'=' (半角イコール) を用いて以下のように表すものとします。

Input

複数のテストケースが与えられます。各テストケースとして 5 桁までの数字（整数）が １ 行に与えられます。

テストケースの数は 1024 を超えません。

Output

各テストケースついてそろばんの珠の配置を出力してください。テストケースの間に１行の空行を入れてください。

Sample Input

2006
1111

Output for the Sample Input

****
*
=====
* *
****
* ***
*****
*****

*****

=====
****
*
*****
*****
*****

Solution in Ruby (judge verdict: Accepted)

class Aba
  def initialize
    @a = []
    @a[0]="* = ****".split(//)
    @a[1]="* =* ***".split(//)
    @a[2]="* =** **".split(//)
    @a[3]="* =*** *".split(//)
    @a[4]="* =**** ".split(//)
    @a[5]=" *= ****".split(//)
    @a[6]=" *=* ***".split(//)
    @a[7]=" *=** **".split(//)
    @a[8]=" *=*** *".split(//)
    @a[9]=" *=**** ".split(//)
  end
  def transpose(p)  # p: m(rows) x n(columns)
    m = p.length
    n = p[0].length
    q = Array.new(n).map{Array.new(m)}

    0.upto(m-1){|i|
      0.upto(n-1){|j|
        q[j][i]=p[i][j]
      }
    }
    return q
  end

  def conv(n)
    s = sprintf("%.5d", n).split(//).map{|x|x.to_i}
    m = [@a[s[0]],@a[s[1]],@a[s[2]],@a[s[3]],@a[s[4]]]
    t=m.transpose.map{|x| x.join}
    return t
  end

end

def main
  if true then
    fh=STDIN
  else
    fh=open("in1_0128.txt")
  end

  ab = Aba.new
  glyph = []
  while fh.gets do
    n=$_.chomp.to_i
    glyph.push(ab.conv(n))
  end

  0.upto(glyph.length-1){|i|
    puts glyph[i]
    puts if i != glyph.length-1
  }

end

if $0 == __FILE__ then
  main
end