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;
    }
    
  • 相关阅读:
    11
    关于一些问题的解决办法[记录]TF400017
    jdbc一次性采集mysql和oracle的海量数据,5000W+为例
    java 读取配置文件类
    Apache Thrift
    Runtime.getRuntime().exec 类 防止阻塞
    angularjs select
    angularjs
    简单的搭mysql开发环境
    运用java反射
  • 原文地址:https://www.cnblogs.com/levarz/p/12781567.html
Copyright © 2011-2022 走看看