从键盘输入一个整数,
则以该数字为矩阵的大小,
把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
具体代码实现如下:
public class RectangleTest {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个整数:");
int n = sc.nextInt();
int[][] arr = new int[n][n];// 创建二维数组,用于存放数据
int left = 0;// 表示左侧
int right = n - 1;// 表示右侧
int top = 0;// 表示上侧
int down = n - 1;// 表示下侧
int count = 0;// 用于计数
while (left <= right) {
for (int i = left; i <= right; i++) {
arr[top][i] = ++count;
}
top++;
for (int j = top; j <= down; j++) {
arr[j][right] = ++count;
}
right--;
for(int i = right; i >= left; i--){
arr[down][i] = ++count;
}
down--;
for(int j = down; j >= top; j--){
arr[j][left] = ++count;
}
left++;
}
System.out.println("输出的回行数格式方阵如下:");
// 输出二维数组
for(int i = 0; i < arr.length; i++){
for(int j = 0; j < arr[i].length; j++){
System.out.print(arr[i][j] + "\t");
}
System.out.println();
}
}
}
人生若只如初见,何事秋风悲画扇。
等闲变却故人心,却道故人心易变。
-----------纳兰性德
小白寄语:学如逆水行舟,不进则退。