蛇形矩阵--斜着打印
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
int[][] ans=new int[n][n];
int count=0;
boolean flag=true;//检验是否要反转
for(int i=0;i<n;i++){
for(int j=0;j<=i;j++){
count++;//自动变化要存入的数
if(flag){//本质是利用直线上x,y和为定值
ans[i-j][j]=count;
}else{
ans[j][i-j]=count;
}
}
flag=!flag;//每次斜着打印完就反转一下
}
for(int i=n-1;i>0;i--){//注意到右下角的三角中两下标和为定值
for(int j=0;j<i;j++){
count++;//自动变化要存入的数
if(flag){//本质是利用直线上x,y和为定值
ans[n-1-j][n-i+j]=count;
}else{
ans[n-i+j][n-1-j]=count;
}
}
flag=!flag;//每次斜着打印完就反转一下
}
for (int i = 0; i < ans.length; i++) {
for (int j = 0; j < ans.length; j++) {
System.out.printf(ans[i][j]+" ");
}
System.out.println("");
}
}
}