zoukankan      html  css  js  c++  java
  • CCF201503-1 图像旋转(100分)

    试题编号: 201503-1
    试题名称: 图像旋转
    时间限制: 5.0s
    内存限制: 256.0MB
    问题描述:
    问题描述
      旋转是图像处理的基本操作,在这个问题中,你需要将一个图像逆时针旋转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的非负整数。


    问题链接:CCF201503试题

    问题描述:先输入正整数n和m,再输入n*m的整数矩阵,将矩阵逆时针旋转90°输出。

    问题分析:这是一个下标转换问题,实际上并不需要将数据另外存储。下标转换问题是程序中经常出现的问题,逻辑并不复杂,需要找出转换公式或函数。

    程序说明这里写了C语言和C++语言两个版本的程序。


    提交后得100分的C语言程序如下:

    /* CCF201503-1 图像旋转 */
    
    #include <stdio.h>
    
    #define N 1000
    int matrix[N][N];
    
    int main(void)
    {
        int n, m;
    
        // 输入矩阵
        scanf("%d%d", &n, &m);
        for(int i=0; i<n; i++)
            for(int j=0; j<m; j++)
                scanf("%d", &matrix[i][j]);
    
        // 输出结果
        for(int j=1; j<=m; j++) {
            for(int i=0; i<n; i++) {
                if(i != 0)
                    putchar(' ');
                printf("%d", matrix[i][m-j]);
            }
            putchar('
    ');
        }
    
        return 0;
    }


    提交后得100分的C++语言程序如下:

    /* CCF201503-1 图像旋转 */
    
    #include <iostream>
    
    using namespace std;
    
    const int N = 1000;
    int matrix[N][N];
    
    int main()
    {
        int n, m;
    
        // 输入矩阵
        cin >> n >> m;
        for(int i=0; i<n; i++)
            for(int j=0; j<m; j++)
                cin >> matrix[i][j];
    
        // 输出结果
        for(int j=1; j<=m; j++) {
            for(int i=0; i<n; i++) {
                if(i != 0)
                    cout << " ";
                cout << matrix[i][m-j];
            }
            cout << endl;
        }
    
        return 0;
    }



  • 相关阅读:
    xgzc— math 专题训练(一)
    floyd判圈算法
    CF961G Partitions
    luoguP4778 Counting swaps
    AT3913 XOR Tree(巧妙转换+状压dp)
    手动实现aop编程
    代理模式
    spring重点一:处理对象创建时间 个数以及方式
    spring helloword
    spring用来干什么,解决的问题
  • 原文地址:https://www.cnblogs.com/tigerisland/p/7564225.html
Copyright © 2011-2022 走看看