码迷,mamicode.com
首页 > 其他好文 > 详细

A1105:Spiral Matrix (25)

时间:2020-07-28 22:39:21      阅读:70      评论:0      收藏:0      [点我收藏+]

标签:lazy   ssi   mat   bsp   c++   pos   ret   oss   mic   

技术图片

【螺旋矩阵】三部曲:1、[ 找到 m、n ]    2、[ 开二维数组填充矩阵 ]   3、[ 输出矩阵 ]

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 
 4 bool cmp(int a, int b) { return a > b; }
 5 
 6 int G[10000][10000];
 7 
 8 int main()
 9 {
10     int N, m, n, x = 10000 ; cin >> N; //输入第一行
11     
12     int matrix[N+1];
13     for(int i = 0; i < N; i++) cin >> matrix[i];//输入第二行
14     
15     for(int i = 1; i <= N; i++)//找出[m n]  
16     {//[m × n must be equal to N; m≥n; and m?n is the minimum of all the possible values.]
17         for(int j = 1; j <= N; j++)
18         {
19             if(i * j == N && i >= j)
20             {
21                 if( (i - j) < x && (i - j) >= 0) 
22                 {
23                     x = (i - j); m = i; n = j;
24                 }
25             }
26         }
27     }
28     sort(matrix, matrix + N, cmp);//递减排序
29     
30     int num = 0, round = 0;
31     while(num < N)
32     {
33         for(int i = round; i < n - round && num < N; i++) G[round][i] = matrix[num++];//填充螺旋矩阵矩阵
34         
35         for(int i = round + 1; i < m - round && num < N; i++) G[i][n-round-1] = matrix[num++];//分 U R D L 四个方向
36         
37         for(int i = n-round-2; i >= round && num < N; i--) G[m-round-1][i] = matrix[num++];
38         
39         for(int i = m-round-2; i >= round + 1 && num < N; i--) G[i][round] = matrix[num++];
40         
41         round++;
42     }
43     
44     for(int i = 0; i < m; i++) //输出矩阵
45     {
46         for(int j = 0; j < n; j++) 
47         {
48             cout << G[i][j];
49             if(j != n-1) cout << " ";
50         }
51         if(i != m-1) cout << endl;
52     }
53     return 0;
54 }

 

A1105:Spiral Matrix (25)

标签:lazy   ssi   mat   bsp   c++   pos   ret   oss   mic   

原文地址:https://www.cnblogs.com/kamisamalz/p/13393937.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!