图像旋转 20150301

来源:互联网 发布:艾弗森全明星mvp数据 编辑:程序博客网 时间:2024/06/03 08:39

问题描述
  旋转是图像处理的基本操作,在这个问题中,你需要将一个图像逆时针旋转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 1010int 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;}



0 0
原创粉丝点击