zoukankan      html  css  js  c++  java
  • 魔幻二维数组

    总时间限制:1000ms 内存限制: 65536kB

    描述

    生成一个n*n的二维数组,数组里面的数字从左上第一个位置开始,按照顺时针螺旋递减。
    如4 * 4的数组。

    16 15 14 13
    5 4 3 12
    6 1 2 11
    7 8 9 10

    输入

    第一行为数字m,表明一共有多少组输入
    下面的m行,每行一个数字n

    输出

    m组二维数组,二维数组要求每个数字不管大小占用3个字符空间,之间用空格隔开。

    样例输入

    1
    4

    样例输出

    16 15 14 13
    5 4 3 12
    6 1 2 11
    7 8 9 10


    ac代码

    /*
    @File     :   td_arrary.cpp
    @Time     :   2020/04/13 21:32:14
    @Desc     :   魔幻二维数组
    */
    #include <iostream>
    #include <stdlib.h>
    
    using namespace std;
    void creat_td_array(int n, int k, int x, int array[][100])
    {
        if (n == 0) return;
        if (n == 1) array[x][x] = 1;
        else
        {
            for (int i = 0;i < n - 1; i++) array[x][x+i] = k--;
            for (int i = 0;i < n - 1; i++) array[x+i][x+n-1] = k--;
            for (int i = 0;i < n - 1; i++) array[x+n-1][x+n-1-i] = k--;
            for (int i = 0;i < n - 1; i++) array[x+n-1-i][x] = k--;
            creat_td_array(n-2,k,x+1,array);
        }
        
    }
    int main(int argc, char const *argv[])
    {
        int m, n, k, x;
        int array[100][100];
        cin >> m;
        for (int i = 0; i < m; i++)
        {
            cin >> n;
           creat_td_array(n,n*n,0,array);
            for (int j = 0; j < n; j++){
                for (int k = 0; k < n; k++)
                printf("%3d ",array[j][k]);
                cout << endl;
        }
        } 
        system("pause");
        return 0;
    }
    
  • 相关阅读:
    git rebase 还是 merge的使用场景最通俗的解释
    漏洞复现:Struts2 远程代码执行漏洞(S2-033)
    linux临时网络配置
    漏洞复现:Struts2 S2-032 漏洞环境
    XXE攻击学习
    启用了不安全的HTTP方法【转】
    HTTP参数污染【转】
    逻辑漏洞挖掘方式
    大漏洞时代下的僵尸网络追踪-笔记
    markdown入门杂记
  • 原文地址:https://www.cnblogs.com/levarz/p/12781567.html
Copyright © 2011-2022 走看看