欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

螺旋矩阵(java)

程序员文章站 2022-06-07 14:46:31
...

输出螺旋矩阵

螺旋方阵

输出螺旋方阵,采用二维数组存储。螺旋方阵将从1开始的自然数由方阵的最外圈向内螺旋方式的顺序排列。

示例

螺旋矩阵(java)

代码部分

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");
		}
	}
}

相关标签: Java 螺旋矩阵