Problem:
そろばん

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

Input

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

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

Output

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

Sample Input

2006
1111

Output for the Sample Input

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

*****

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

Solution in C# (judge verdict: Accepted)

using System;
using System.Collections.Generic;

namespace AOJ.Volume1
{
    public class Abacus
    {
        public static void Main()
        {
            var dic = new Dictionary<string, string>
            {
                {"0", "* = ****"},
                {"1", "* =* ***"},
                {"2", "* =** **"},
                {"3", "* =*** *"},
                {"4", "* =**** "},
                {"5", " *= ****"},
                {"6", " *=* ***"},
                {"7", " *=** **"},
                {"8", " *=*** *"},
                {"9", " *=**** "},
            };

            bool first = true;
            while (true)
            {
                string input = Console.ReadLine();
                if (string.IsNullOrEmpty(input)) { break; }
                if (!first) { Console.WriteLine(); }

                input = input.PadLeft(5, '0');
                string[] output = new string[5];
                // 変換
                for (int i = 0; i < 5; i++)
                {
                    output[i] = dic[input.Substring(i, 1)];
                }

                // 出力
                for (int i = 0; i < 8; i++)
                {
                    string line = "";
                    for (int j = 0; j < 5; j++) { line += output[j].Substring(i, 1); }
                    Console.WriteLine(line);
                }

                first = false;
            }
        }
    }
}