螺旋矩阵


题目描述:

打印一个螺旋矩阵,从右上角顺时针排列

输入格式:

一个整数n(n<=100)

输出格式:

一个n*n的矩阵

输入样例:

5

输出样例:

13 14 15 16 1
12 23 24 17 2
11 22 25 18 3
10 21 20 19 4
9 8 7 6 5

AC代码:

 1 #include<cstdio>
 2 
 3 using namespace std;
 4 
 5 int a[105][105]; 
 6 
 7 inline void work(int n) {
 8     int js = 1;
 9     for(int i = 0;i < n / 2; i++) {
10         for(int j = i;j < n-1-i; j++) 
11             if(a[j][n-1-i] == 0)
12                 a[j][n-1-i] = js++;
13         for(int j = n-1-i;j > i;j--)
14             if(a[n-1-i][j] == 0)
15                 a[n-1-i][j] = js++;
16         for(int j = n-1-i;j > i; j--)
17             if(a[j][i] == 0)
18                 a[j][i] = js++;
19         for(int j = i;j < n-1-i; j++)
20             if(a[i][j] == 0)
21                 a[i][j] = js++;
22     }
23     if(n % 2 == 1)
24         a[n/2][n/2] = js;
25 }
26 
27 int main() {
28     int n;
29     scanf("%d",&n);
30     work(n);
31     for(int i = 0;i < n; i++){
32         for(int j = 0;j < n; j++)
33             printf("%-4d ",a[i][j]);
34         printf("\n");
35     }
36     return 0;   
37 }

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM