打印回型数矩阵
举例:1 2 3
8 9 4
7 6 5
-
例1
package com.dahongcui.java;
import java.util.Scanner;
/*
* 从键盘输入一个整数(1~20)例如输入2输出 1 2
* 3 4
*/
public class ReturnSquare {
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;//s为矩阵中元素的个数
//用k来代表矩阵中数字元素前进的方向
/*
当k = 1的时候表示向右
当k = 2的时候表示向下
当k = 3的时候表示向左
当k = 4的时候表示向上
*/
int k = 1;
int i = 0,j = 0;
//m在这里既可以控制循环也可以为数组中的元素赋值
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();
}
}
}