螺旋矩陣


題目描述:

打印一個螺旋矩陣,從右上角順時針排列

輸入格式:

一個整數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