码迷,mamicode.com
首页 > 编程语言 > 详细

那些年,一起学的Java 6-3

时间:2015-03-13 01:57:18      阅读:136      评论:0      收藏:0      [点我收藏+]

标签:java

/**

 * 6-3

 * 编程实现如下要求的螺旋矩阵

 * 螺旋方阵存放在n*n的二维数组中并将其打印输出

 * 要求 n 由程序读入

 * 数字螺旋方阵由程序自动生成

 * (非人为的初始化或逐个输入)

 */

import java.io.*;
import java.util.*;
public class Test{
	public static void main(String[] args){
		
		/*声明一个维数是n的数组*/
		int n=0;
		System.out.print("请输入螺旋矩阵的维数n:");
		Scanner read = new Scanner(System.in);
		n = read.nextInt();
		int array[][] = new int[n][n];
		
		/*为数组中的各个元素赋值*/
		
		int elem = 1; //初始化第一个元素的值为1
		int cycleNumber=0;		//判断循环的次数
		if (n % 2 != 0)
			cycleNumber=n/2+1;
		else
			cycleNumber=n/2;
		for(int i = 0; i < cycleNumber; i++){	//从外到内开始循环
			
			for (int j = i; j < n-i; j++)	//从左到右赋值
			{
				array[i][j]=elem;
				elem++;
			}
			for (int k = i+1; k < n-i; k++)	//从上到下赋值				
			{
				array[k][n-i-1]=elem;
				elem++;
			}
			for (int l = n-i-2; l >= i; l--)//从右到左赋值	
			{
				array[n-i-1][l]=elem;
				elem++;
			}
			for (int m = n-i-2; m > i; m--)	//从下到上赋值
			{
				array[m][i]=elem;
				elem++;
			}
		}
		
		/*输出数组*/
		for(int i = 0; i < n; i++)
		{
			for (int j = 0; j < n; j++)
				System.out.printf("%-3d", array[i][j]);
			System.out.println();
		}
	} 
}


本文出自 “hacker” 博客,请务必保留此出处http://anglecode.blog.51cto.com/5628271/1619860

那些年,一起学的Java 6-3

标签:java

原文地址:http://anglecode.blog.51cto.com/5628271/1619860

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!