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

打印矩阵1--蛇形矩阵

时间:2020-01-14 23:51:33      阅读:90      评论:0      收藏:0      [点我收藏+]

标签:turn   视频   段落   color   pre   print   ==   打印   排列   

题目说明
蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形。

样例输入
5  5
样例输出   

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

两个方位数组dx和dy遍历右,左下,下,右上四个方向,因为我们只要用着四个方向

之后k表示第几个数,t我们可以用来判断转换的方向。

 

太晚了,本题先告一段落,再加上剩余的16个视频,集训的7天慢慢研究吧

集训七天乐,学习更快乐!!!

 1 #include <cstdio>
 2 #include <iostream>
 3 #include <cstring>
 4 using namespace std;
 5 int dx[4]={0,1,1,-1};
 6 int dy[4]={1,-1,0,1};
 7 //右,左下,下,右上
 8 int a[25][25]; 
 9 int main()
10 {
11     int n,x,y,k,t;
12     scanf ("%d",&n);
13     memset(a,-1,sizeof(a));
14     for (int i = 1;i <= n;i++)
15     {
16         for (int j = 1;j <= n;j++)
17         {
18             a[i][j]=0;
19         }
20     }
21     x=1;
22     y=1;
23     k=1;
24     t=0;
25     while (k<=n*n)
26     {
27         a[x][y]=k;
28         k++;
29         if (k>n*n)
30         break;
31         while (a[x+dx[t]][y+dy[t]]!=0)
32         {
33             t++;
34             if (t==4)t=0;
35         }
36         x=x+dx[t];
37         y=y+dy[t];
38         if (t==0||t==2)t++;
39     }
40     for (int i = 1;i <= n;i++)
41     {
42         for(int j = 1;j <= n;j++)
43         {
44             printf ("%4d",a[i][j]);
45     }
46     cout<<endl;
47     }
48     return 0;
49 }

打印矩阵1--蛇形矩阵

标签:turn   视频   段落   color   pre   print   ==   打印   排列   

原文地址:https://www.cnblogs.com/very-beginning/p/12194359.html

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