题目描述
打印螺旋数字正方形
输入描述
输入一个整数n,1<=n<=31
输出描述
输出数字正方形。
注意,每个数字占4个字符,右对齐,不全则补足空格;
代码 :
package luoxaunjuzheng;
import java.util.Scanner;
public class lxjz {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input = new Scanner(System.in);
int [][]a = new int[31][31];
int n = input.nextInt();
int m = 1;
int x;
if (n%2 != 0) x = n/2 + 1;
else x = n/2;
int i,j;
for(i = 0;i < x; i++){
for(j = i;j < n-i; j++ ){
//从左上到右上
a[i][j] = m;
m++;
}
for(j = i+ 1;j < n-i; j++){
//从右上到右下
a[j][n-i-1] = m;
m++;
}
for(j = n-i-2;j>=i;j--){
//从右下到左下
a[n-i-1][j] = m;
m++;
}
for(j = n-i-2;j>=i+1;j--){
//从左下到左上
a[j][i] = m;
m++;
}
//输出矩阵
for(i=0;i<n;i++){
for(j=0;j<n;j++){
System.out.print(a[i][j] + " ");
}
}
System.out.println();
}
}
}