打印矩阵1--蛇形矩阵
Posted very-beginning
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了打印矩阵1--蛇形矩阵相关的知识,希望对你有一定的参考价值。
题目说明
蛇形矩阵是由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--蛇形矩阵的主要内容,如果未能解决你的问题,请参考以下文章