螺旋矩阵(java)

输出螺旋矩阵

螺旋方阵

输出螺旋方阵,采用二维数组存储。螺旋方阵将从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");
		}
	}
}

  • 5
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值