輸出螺旋矩陣
- 螺旋方陣
-
- 示例
- 代碼部分
螺旋方陣
輸出螺旋方陣,采用二維數組存儲。螺旋方陣将從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");
}
}
}