JAVA回形数

回形数

从键盘输入一个整数(1~20)
以该数字为矩阵的大小,把1,2,3…n*n的数字按照顺时针螺旋的形式填入其中
例如:
输入2,则输出
1 2
4 3
输入3,则输出
1 2 3
8 9 4
7 6 5

import java.util.Scanner;

public class RectangleTest {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		System.out.println("请输入一个数字");
		int len = scanner.nextInt();
		int[][] arr = new int[len][len];
		
		int s =  len * len;
		
		// k = 1 向右  2 向下 3向左 4向上
		int k = 1;
		int i = 0, j = 0;
		for(int m = 1; m <= s; m++){
			if (k == 1){
				if (j < len && arr[i][j] == 0){
					arr[i][j++] = m;
				}else{
					k = 2;
					i++;
					j--;
					m--;
				}
			}else if(k == 2){
				if(i < len && arr[i][j] == 0){
					arr[i++][j] = m;
				}else{
					k = 3;
					i--;
					j--;
					m--;
				}
			}else if(k == 3){
				if(j >= 0 && arr[i][j] == 0){
					arr[i][j--] = m;
				}else{
					k = 4;
					i--;
					j++;
					m--;
				}
			}else if(k == 4){
				if(i >= 0 && arr[i][j] == 0){
					arr[i--][j] = m;
				}else{
					k = 1;
					i++;
					j++;
					m--;
				}				
			}
		}
		
		for(int m = 0; m < arr.length; m++){
			for(int n = 0; n < arr[m].length; n++){
				System.out.print(arr[m][n] + "\t");
			}
			System.out.println();
		}
		
	}
}

JAVA回形数_第1张图片

你可能感兴趣的:(JAVA,java,算法,数组)