题目描述
根据给定阶数,输出方阵。具体格式见测试用例。
输入
为一个整数n(0<n<100),代表方阵阶数。
输出
一个n*n阶方阵,具体格式见测试用例(注意,每个数之间用一个空格分隔,每行的最后无空格)。
样例输入
4
样例输出
1 2 5 10 4 3 6 11 9 8 7 12 16 15 14 13
思路:
首先看样例输出,方阵行列个数是由输入决定,数字排列顺序是以左上角为点一圈一圈来的,很怪
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class 打印方阵二 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
// TODO Auto-generated method stub
String inputString = br.readLine();
int len = Integer.parseInt(inputString);
int[][] a = new int[len + 1][len + 1];
for(int i = 1;i <= len;i ++){
for(int j = 1;j <= i; j++){
a[i][j] = i * i - (j - 1);
}
for(int k = 1;k < i; k ++){
a[k][i] = (i - 1) * (i - 1) + k;
}
}
for(int i = 1;i <= len; i ++){
for(int j = 1; j <= len; j ++){
if(j==len)System.out.print(a[i][j]);
//每行最后一个数字
else System.out.print(a[i][j] + " ");
//不是每行的最后一个数字,加空格
}
System.out.println();
}
}
}