蛇形阵分一字阵和回字阵,如3*3:
一字阵: 回字阵:
1 2 6 7 6 5
3 5 7 8 1 4
一字阵: 回字阵:
1 2 6 7 6 5
3 5 7 8 1 4
4 8 9 9 2 3
代码:
#include<stdio.h>using
namespace
std;int
main(){ int
i,j,a[30][30],n,k; scanf("%d",&n); k=1;for(i=0;
i<n; i++){ for(j=0;
j<=i; j++) { if(i%2==0)
a[i-j][j]=k; else
a[j][i-j]=k; k++; }}for(i=n;
i<2*n; i++){ for(j=1;
j<2*n-i; j++) { if(i%2==0)
a[n-j][i-n+j]=k; else
a[i-n+j][n-j]=k; k++; }} for(i=0;
i<n; i++) { printf("\n"); for(j=0;
j<n; j++) { printf("%4d",a[i][j]); } }printf("\n");printf("\n");printf("\n");int
I,J,K;int
t=n*n;int
A[30][30]; for(I=0;I<=n/2;I++) { for(J=I;J<n-I;J++) A[I][J]=t--; for(K=I+1;K<n-I;K++) A[K][J-1]=t--; for(J-=2;J>=I;J--) A[K-1][J]=t--; for(K-=2;K>I;K--) A[K][J+1]=t--; } for(J=n-1;J>=0;J--) { for(K=0;K<n;K++) printf("%4d",A[K][J]); printf("\n"); }return
0;}
一字阵就是按照规律将矩阵分成上下两个三角形 :
5
1
2 3
4 5 6
7 8 9 10
11 12 13 14 15
16 17 18 19
20 21 22
23 24
25
回字的话就是按照这个回旋的规律输入二维矩阵
本文介绍了一种蛇形阵布局算法,包括一字阵和回字阵两种形式,并提供了实现这两种布局的具体C语言代码示例。该算法适用于生成特定类型的二维矩阵布局。
1198

被折叠的 条评论
为什么被折叠?



