打印蛇形数组——两种结构
来源:互联网 发布:linux hello world 编辑:程序博客网 时间:2024/06/05 17:18
打印如下格式的数据:
解题思路:先将矩阵变一下形状
public static void main(String[] args) {// TODO Auto-generated method stubint n=5;int [] []a=new int[n][n];int [] []b=new int[2*n][n];int num=0;//构造三角阵数形for(int i=0;i<n-1;i++){for(int j=0;j<=i;j++){num++;b[i][j]=num;} } for(int i=n-1;i<2*n-1;i++) { for(int j=0;j<2*n-1-i;j++) { num++; b[i][j]=num; } } //奇数行进行逆序排序 for(int i=0;i<n;i+=2) //第0、2、4行 { int temp=0; for(int j=0;j<=i/2;j++) { temp=b[i][j]; b[i][j]=b[i][i-j]; b[i][i-j]=temp; } } for(int i=(n+1)/2*2;i<2*n-1;i+=2) //第6、8行 { int temp=0; for(int j=0;j<(2*n-1-i)/2;j++) { temp=b[i][j]; b[i][j]=b[i][2*n-2-i-j]; b[i][2*n-2-i-j]=temp; } } //打印b[][] for(int i=0;i<n-1;i++){for(int j=0;j<=i;j++){System.out.print(b[i][j]+" ");}System.out.println();} for(int i=n-1;i<2*n-1;i++) { for(int j=0;j<2*n-1-i;j++) { System.out.print(b[i][j]+" "); } System.out.println(); }//按照斜线将数填回原矩阵 for(int i=0;i<n;i++) { for(int j=0;j<=i;j++) { a[i-j][j]=b[i][j]; } } for(int i=n;i<2*n-1;i++) { for(int j=i-n+1;j<n;j++) { a[i-j][j]=b[i][j-i+n-1]; } } for(int i=0;i<n;i++){ for(int j=0;j<n;j++){ System.out.print(a[i][j]+" "); } System.out.println(); } }
输出二维蛇形矩阵,格式如下:
1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9
public static void main(String[] args) {int n=5;int [][]a=new int [n][n];int count=1;if(n==1){a[0][0]=count;}else{for(int i=0;i<n/2;i++){/* 以下循环执行后输出如下: 1 2 3 4 5 */ for(int j=i;j<n-i;j++){a[i][j]=count;count++;} /* 以下循环执行后输出如下: 1 2 3 4 5 6 7 8 */ for(int k=i+1;k<n-i-1;k++){a[k][n-i-1]=count;count++;} /* 以下循环执行后输出如下: 1 2 3 4 5 6 7 8 13 12 11 10 9 */ for(int m=n-i-1;m>i;m--){a[n-i-1][m]=count;count++;} /* 以下循环执行后输出如下: 1 2 3 4 5 16 6 15 7 14 8 13 12 11 10 9 */ for(int w=n-i-1;w>i;w--){a[w][i]=count;count++;}} /* 上面的大循环执行后输出如下: 1 2 3 4 5 16 17 18 19 6 15 24 20 7 14 23 22 21 8 13 12 11 10 9 */ if(n%2 == 1){ //如果n值奇数,将最中间的空填上 a[n/2][n/2] = count; } }//打印矩阵for(int i=0;i<n;i++){for(int j=0;j<n;j++){System.out.print(a[i][j]+" ");}System.out.println();}}
0 0
- 打印蛇形数组——两种结构
- 蛇形数组打印
- 数组的蛇形打印
- 顺时针打印矩阵(蛇形填空)(两种方式实现)
- 不用数组打印蛇形矩阵
- 算法入门-打印蛇形数组
- 打印蛇形和顺序方阵—题解
- 蛇形数组和“之”字形打印
- 打印蛇形矩阵(二维数组)
- 二维数组的“蛇形打印”输出
- 数组——蛇形矩阵、螺旋矩阵
- 今日面试题之【实现蛇形数组打印】
- 蛇形数组
- 蛇形数组
- 蛇形数组
- 蛇形数组
- 蛇形数组
- 蛇形数组
- eclipse或者myeclipse中竖直选择代码
- openjdk编译和调试
- 《STL源码剖析》---stl_hashtable.h阅读笔记
- android数据库SQLite(2)
- 出栈序列的合法性
- 打印蛇形数组——两种结构
- 第三次上机作业
- CF 346 B vector<pair> s[100]
- 整理Ruby相关的各种概念(rvm, gem, bundle, rake, rails等)
- 随便取十个数1
- 【推荐】可查找下载和上传动漫外挂字幕网站
- MaterialDesign之NavigationView和DrawerLayout实现侧滑菜单栏
- LeetCode *** 58. Length of Last Word
- LeetCode 25 reverse-nodes-in-k-group