ABC039_B

文字列を右90度に回転させる問題

#include <bits/stdc++.h>
using namespace std;
static const int MAX_N = 50;
int main()
{
    char a[MAX_N][MAX_N+1];
    char b[MAX_N][MAX_N+1];
    int n;
    cin>>n;
    //input
    for(int i=0;i<n;i++){
        for(int j=0;j<n;j++){
            cin>>a[i][j];
        }
    }
    //回転
    for(int i=0;i<n;i++){
        for(int j=0;j<n;j++){
            b[j][n-i-1] = a[i][j];
        }
    }
    //output
    for(int i=0;i<n;i++){
        for(int j=0;j<n;j++){
            cout<<b[i][j];
        }
        cout<<endl;
    }
    return 0;
}


右180度の場合
(i)操作を2回繰り返す
(ii)

    for(int i=0;i<n;i++){
        for(int j=0;j<n;j++){
            b[n-i-1][n-j-1] = a[i][j];
        }
    }

右270度の場合
(i)操作を3回繰り返す
(ii)

    for(int i=0;i<n;i++){
        for(int j=0;j<n;j++){
            b[n-j-1][i] = a[i][j];
        }
    }