问题描述
输入:二维数组大小N
输出:N*N的二维数组,对数组进行螺旋赋值
例如:
输入: 4
输出: 1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7
Java实现代码
import java.util.Scanner;
public class huiwenArray {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("请输入矩阵大小:");
int num = scan.nextInt();
int[][] huiwenArray = new int[num][];
for(int i=0;i<num;i++) {
huiwenArray[i] = new int[num];
}
int row = 0;
int col = 0;
int flag = 0;
int count = 1;
int[][] step = new int[][] {{0,1},{1,0},{0,-1},{-1,0}};
while(true){
if(count == num * num + 1) {
break;
}
else{
huiwenArray[row][col] = count;
if(row+step[flag][0] < 0 || row+step[flag][0] > num-1
|| col+step[flag][1] < 0 || col+step[flag][1] > num-1
|| huiwenArray[row + step[flag][0]][col + step[flag][1]] != 0) {
flag = (flag + 1) % 4;
}
count++;
row = row + step[flag][0];
col = col + step[flag][1];
}
}
for(int i=0;i<num;i++) {
for(int j=0;j<num;j++) {
System.out.print(huiwenArray[i][j] + "\t");
}
System.out.println();
}
System.exit(0);
}
}
结果
请输入矩阵大小:
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