Problem:
パターンの回転

8 文字 × 8 行のパターンを右回りに 90 度、180 度、270 度回転させて出力するプログラムを作成してください。

Input

8 文字 × 8 行からなるパターンが与えられます。文字は、英数字、半角シャープ '#' 、アスタリスク '*' からなります。

Output

次の形式で、回転させたパターンを出力してください。

90（半角数字固定）
90度回転させたパターン
180（半角数字固定）
180度回転させたパターン
270（半角数字固定）
270度回転させたパターン

Sample Input

#*******
#*******
#*******
#*******
#*******
#*******
#*******
########

Output for the Sample Input

90
########
#*******
#*******
#*******
#*******
#*******
#*******
#*******
180
########
*******#
*******#
*******#
*******#
*******#
*******#
*******#
270
*******#
*******#
*******#
*******#
*******#
*******#
*******#
########

Solution in C# (judge verdict: Accepted)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            string[] original = new string[8];

            for (int i = 0; i < 8; i++)
            {
                original[i] = Console.ReadLine();
            }

            char[,] right = new char[8, 8];
            char[,] rev = new char[8, 8];
            char[,] left = new char[8, 8];

            for (int i = 0; i < 8; i++)
            {
                for (int j = 0; j < 8; j++)
                {
                    right[j, 7 - i] = original[i][j];
                    rev[7 - i, 7 - j] = original[i][j];
                    left[7 - j, i] = original[i][j];
                }
            }

            Console.WriteLine(90);
            Print(right);
            Console.WriteLine(180);
            Print(rev);
            Console.WriteLine(270);
            Print(left);
        }

        static void Print(char[,] map)
        {
            StringBuilder sb = new StringBuilder();

            for (int i = 0; i < 8; i++)
            {
                for (int j = 0; j < 8; j++)
                {
                    sb.Append(map[i, j]);
                }
                sb.Append("\n");
            }
            Console.Write(sb);
        }
    }
}