图像旋转 20150301

问题描述
  旋转是图像处理的基本操作,在这个问题中,你需要将一个图像逆时针旋转90度。
  计算机中的图像表示可以用一个矩阵来表示,为了旋转一个图像,只需要将对应的矩阵旋转即可。
输入格式
  输入的第一行包含两个整数n, m,分别表示图像矩阵的行数和列数。
  接下来n行每行包含m个整数,表示输入的图像。
输出格式
  输出m行,每行包含n个整数,表示原始矩阵逆时针旋转90度后的矩阵。
样例输入
2 3
1 5 3
3 2 4
样例输出
3 4
5 2
1 3
评测用例规模与约定
  1 ≤ n, m ≤ 1,000,矩阵中的数都是不超过1000的非负整数。

思路: 本题作为CCF的第一题,应该比较简单。 题目意思是 将 矩阵逆时针旋转90度,看似很难处理,实则看一个例子就很好理解,也就是从最后一列开始,将列变成行

将 3 ,4 转化为 第一行 ; 5,2转化为第二行 ; 1,3转化为第三行


#include <iostream>
using namespace std;

#define MAX 1010

int main(){
    int map[MAX][MAX];
    int result[MAX][MAX];
    int n,m,i,j;
    cin>>n>>m;
    for(i=0;i<n;i++){
        for(j=0;j<m;j++)
            cin>>map[i][j];
    }
    int p=0,q;
    for(j=m-1;j>=0;j--){
        q = 0;
        for(i=0;i<n;i++){
            result[p][q] = map[i][j];
            q++;
        }
        p++;
    }
    for(i=0;i<m;i++){
        for(j=0;j<n;j++)
            cout<<result[i][j]<<" ";
        cout<<endl;
    }
    return 0;
}



你可能感兴趣的:(C++,CCF)