蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形。
样例输入
5
样例输出
1 3 6 10 15
2 5 9 14
4 8 13
7 12
11
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
int m=sc.nextInt();
int[][] arr=new int[m][m];
// StringBuffer sb=new StringBuffer();
for(int i=0;i<m;i++){
for(int j=0;j<m-i;j++){
if(i==0){
if(j==0){
arr[0][0]=1;
System.out.print(1+" ");
//sb.append(1+" ");
}else{
arr[0][j]=1+j+arr[0][j-1];
if(j==m-1){
System.out.println(arr[0][j]);
}else{
System.out.print(arr[0][j]+" ");
}
// sb.append(arr[0][j]+" ");
}
}
else {
arr[i][j]=arr[i-1][j+1]-1;
if(j==m-i-1){
System.out.println(arr[i][j]); }else{
System.out.print(arr[i][j]+" ");
}
}
}
}
}
}
方法二:
推出第一行,其他全部都知道
public class Main {
public static void main(String[] args){
//String s="za01AS23Ddw";
int num=5;
int[][]arr=new int[5][5];
for(int i=0;i<5;i++){
arr[0][0]=1;
if(i==0){for(int j=1;j<5;j++){
arr[0][j]=arr[0][j-1]+i+j+1;
}}
else{
for(int j=0;j<5-i+1;j++){
arr[i][j]=arr[i-1][j+1]-1;
}
}
}
for(int i=0;i<5;i++){
for(int j=0;j<5;j++){
if(arr[i][j]!=0){System.out.print(arr[i][j]+" "); }
}
System.out.println();
}
}