腾讯笔试 蛇形矩阵
输入:n
输出:蛇形矩阵
样例:
3
1 2 3 8 9 4 7 6 5
源码如下:
package tengxun;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
@SuppressWarnings("resource")
Scanner scan = new Scanner(System.in);
int n,i,j,number,minx,miny,maxx,maxy;
while(true){
n = scan.nextInt();
int arr[][] = new int[n][n];
/*数组下标*/
i = 0;
j = 0;
/*控制边界值*/
minx = 0;
miny = 0;
maxx = n-1;
maxy = n-1;
number = 2;//填入数字
arr[0][0]=1;
while(true){
/*向右*/
while(j < maxy && number <= n*n){
arr[i][++j] = number++;
}
minx+=1;
/*向下*/
while(i < maxx && number <= n*n){
arr[++i][j] = number++;
}
maxy-=1;
/*向左*/
while(j > miny && number <= n*n){
arr[i][--j] = number++;
}
maxx-=1;
/*向上*/
while(i > minx && number <= n*n){
arr[--i][j] = number++;
}
miny+=1;
if(number > n*n){
break;
}
}
for(int x = 0;x < n;x++)
for(int y = 0;y < n;y++){
System.out.print(arr[x][y]+" ");
}
}
}
}