java编程图形

来源:百度知道 编辑:UC知道 时间:2024/09/28 08:05:53
利用循环搞定如下图形(带清楚注释的加分)
1 2 6 7 15
3 5 8 14 16
4 9 13 17 22
10 12 18 21 23
11 19 20 24 25

//生成此二维数组的函数
//参数为阶数,如5,就是你要的结果
public int[][] makeMat(int n){
//创建方阵
int[][] m=new int[n][n];
//定义左下-右上正反两个方向的常量
final boolean RT_LB=true,LB_RT=false;
//控制每一"斜行"的方向变量
boolean direction=LB_RT;
//以斜行为外循环
for(int i=0;i<n;i++){
//是左下到右上?
if(direction==LB_RT){
for(int j=0;j<=i;j++){
//设置从左下到右上各元素值
m[i-j][j]=i*(i+1)/2+j+1;
//设置与上个元素中心对称元素值
m[n-i+j-1][n-j-1]=n*n+1-m[i-j][j];
}
//改为右上-左下方向
direction=RT_LB;
}
else{
for(int j=0;j<i;j++){
//设置从右上到左下各元素值