螺旋矩阵(java)
程序员文章站
2022-06-07 14:46:31
...
螺旋方阵
输出螺旋方阵,采用二维数组存储。螺旋方阵将从1开始的自然数由方阵的最外圈向内螺旋方式的顺序排列。
示例
代码部分
package juju0921;
import java.util.Scanner;
public class Juju {
public static void main(String[] args) {
int i=0,j=0;
int z=0;
System.out.println("请输入方阵大小n(方阵为n*n)");
Scanner in1 =new Scanner(System.in);
int p=in1.nextInt();
int a[][]=new int[p][p];
int num=1;
int c,q=p;
if(p%2==0)
{
c=p/2;
}
else
{
c=(p+1)/2;
}
for(int n=0;n<c;n++)
{
//第一行从左向右循环
for(j=z;j<p;j++)
{
a[z][j]=num++;
}
//最右列从上到下循环
for(i=z;i<p-1;i++)
{
a[i+1][p-1]=num++;
}
//最底行从右向左循环
for(j=p-1-1;j>z-1;j--)
{
a[p-1][j]=num++;
}
//最左列从下到上循环
for(i=p-1-1;i>z;i--)
{
a[i][j+1]=num++;
}
p--;
z++;
}
for(i=0;i<q;i++)
{
for(j=0;j<q;j++)
{
System.out.print(a[i][j]+"\t");
}
System.out.println("\n");
}
System.out.println("\n");
z=0;
p=q;
j=z;
num=1;
for(int n=0;n<c;n++)
{
//第一列从上向下循环
for(i=z;i<p;i++)
{
a[i][z]=num++;
}
//最底行从左到右循环
for(j=z+1;j<p;j++)
{
a[p-1][j]=num++;
}
//最右列从下向上循环
for(i=p-1-1;i>z-1;i--)
{
a[i][p-1]=num++;
}
//第一行从右到左循环
for(j=p-1-1;j>z;j--)
{
a[z][j]=num++;
}
p--;
z++;
}
for(i=0;i<q;i++)
{
for(j=0;j<q;j++)
{
System.out.print(a[i][j]+"\t");
}
System.out.println("\n");
}
}
}