zoukankan      html  css  js  c++  java
  • 矩阵旋转

    初始化矩阵

    void initial_square_matrix(int * * * pm, int n)
    {
        pm[0] = new int *[n];
        for (int i = 0; i < n; i++)
        {
            pm[0][i] = new int[n];
            for (int j = 0; j < n; j++)
                pm[0][i][j] = i * n + j + 1;
        }
    }

    销毁矩阵

    void destroy_square_matrix(int * * * pm, int n)
    {
        for (int i = 0; i < n; i++)
            if (NULL != pm[0][i])
                delete[] pm[0][i];
        delete[] pm[0];
        pm[0] = NULL;
    }

    打印矩阵

    void print_square_matrix(int * * m, int n)
    {
        cout << "------------------------------------" << endl;
        for (int i = 0; i < n; ++ i)
        {
            for (int j = 0; j < n; j++)
                cout << m[i][j] << "	";
            cout << endl;
        }
    }

    向左旋转打印

    void print_square_matrix_reversel90(int * * m, int n)
    {
        cout << "------------------------------------" << endl;
        for (int i = 0; i < n; ++ i)
        {
            for (int j = 0; j < n; j++)
                cout << m[j][n - i - 1] << "	";
            cout << endl;
        }
    }

    向右旋转打印

    void print_square_matrix_reverser90(int * * m, int n)
    {
        cout << "------------------------------------" << endl;
        for (int i = 0; i < n; ++ i)
        {
            for (int j = 0; j < n; j++)
                cout << m[n - j - 1][i] << "	";
            cout << endl;
        }
    }

    很特殊的一种旋转

    /*
    仅仅适用于类似这样的矩阵
    1       2       3       4       5
    6       7       8       9       10
    11      12      13      14      15
    16      17      18      19      20
    21      22      23      24      25
    */
    void reverse_square_matrix(int * * m, int n)
    {
        for (int i = 0; i < n; ++ i)
        {
            for (int j = 0; j < n; j++)
                m[i][j] = m[i][j] * (n * n - n + 1) % (n * n + 1);
        }
    }

    测试

     1     int mn = 5;
     2     int ** m;
     3 
     4     initial_square_matrix(&m, mn);
     5     print_square_matrix(m, mn);
     6     print_square_matrix_reversel90(m, mn);
     7     print_square_matrix_reverser90(m, mn);
     8     reverse_square_matrix(m, mn);
     9     print_square_matrix(m, mn);
    10     destroy_square_matrix(&m, mn);
    出自datakv
  • 相关阅读:
    GDOI 2019 退役记
    SHOI2019 游记
    【WC2014】紫荆花之恋
    PKUWC 2019 & NOIWC2019 比赛总结 Formal Version
    WC 2019 颓废记
    VDUVyRLYJC
    Git学习
    DOM学习笔记
    python基础---->AJAX的学习
    python基础---->进程、线程及相关等
  • 原文地址:https://www.cnblogs.com/datakv/p/5606129.html
Copyright © 2011-2022 走看看