i为行,j为列,当j>=2时,有以下规律,从上往下加 arr[i][j]=arr[i][j-1]+i+j-1; 当i>=2时,有以下规律,从左往右加 arr[i][j]=arr[i-1][j]+i+j-2;
import java.util.*;
public class Main{
public static void main(String args[]){
Scanner sc=new Scanner(System.in);
while(sc.hasNextInt()){
int n=sc.nextInt();
int[][] arr=new int[n+1][n+1];
arr[1][1]=1;//设置左上角第一个数为1
for(int i=1;i<=n;i++){//上三角遍历
for(int j=1;j<=n-i+1;j++){
if(i==1&&j==1){//跳过第一行第一列
continue;
}
if(i==1&&j!=1){//先把第一行和第一列按规律计算好
arr[i][j]=arr[i][j-1]+i+j-1;
} else if(i!=1&&j==1){
arr[i][j]=arr[i-1][j]+i+j-2;
}else{//计算中间的数,要么从上往下加,要么从左往右加,皆可
arr[i][j]=arr[i-1][j]+i+j-2;
}
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n-i+1;j++){
System.out.print(arr[i][j]+" ");
}
System.out.println();
}
}
}
}