Java题目-回形数格式方阵的实现

从键盘输入一个整数(1~20)

则以该数字为矩阵的大小,把1,2,3…n*n的数字按照顺时针螺旋的形式填入其中.

例如:

输入数字2,则程序输出:

1 2
4 3

   

输入数字3,则程序输出:

1 2 3
8 9 4
7 6 5

输入数字4,则程序输出:

1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7

刚开始学Java,自己做出来的可能是最笨的,大佬轻喷.

将整个数组的赋值分步考虑:

 Java题目-回形数格式方阵的实现_第1张图片

一圈分为四步(四个箭头所示),所以写了四个循环完成这四个箭头的过程.

剩下的就是循环多少圈的问题,很容易找到规律 (输入的方阵大小)/2 再向上取整就是需要循环的次数,所以有以下代码.

import java.util.Scanner;

public class HuiXingJuZhen {
public static void main(String[] args) {
	Scanner scan = new Scanner(System.in);
	int scale = scan.nextInt();
	int[][] arr = new int[scale][scale];
	
	int cycleNumber=scale/2;
	if(scale %2 != 0) {
		cycleNumber+=1;
	}
	
	int count = 1;
	
	for(int c=0;c=c;i--) {
			arr[arr.length-c-1][i] = count++;
		}
		for(int i=arr.length-c-2;i>c;i--) {
			arr[i][c] = count++;
		}
		
	}
	for(int i=0;i

你可能感兴趣的:(java)