怎么样打印出这样一个图形????
1 2 3 4 5 620 21 22 23 24 719 32 33 34 25 818 31 36 35 26 917 30 29 28 27 1016 15 14 13 12 11
1 2 3 4 5 620 21 22 23 24 719 32 33 34 25 818 31 36 35 26 917 30 29 28 27 1016 15 14 13 12 11
调试欢乐多
定义个双重数组6 6
从小到大排序下
然后看规律set进去
>_<
不写了...
// TODO Auto-generated method stub
//定义变量
int n=6;//控制正方形大小
int z=1;
int s[][]=new int[n][n];
int x=0,y=0;
//控制数据入位
for(int i=1;i<=n*2-1;i++){
//往右
if(i%4==1){
s[x][y]=z++;//设置正方形包括内正方形的左上角的值
for(int j=i/4+1;j<n-i/4;j++){
s[x][++y]=z++;
}
}
//往下
if(i%4==2){
for(int j=i/4+1;j<n-i/4;j++){
s[++x][y]=z++;
}
}
//往左
if(i%4==3){
for(int j=i/4+1;j<n-i/4;j++){
s[x][--y]=z++;
}
}
//往上
if(i%4==0){
for(int j=i/4;j<n-i/4;j++){
s[--x][y]=z++;
}
}
if(i%4==0) y++;//控制移动到内正方形的左上角坐标
}
//输出
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
//控制每个数据占3个位
if(s[i][j]/10==0){
System.out.print(s[i][j]+" ");
}else{
System.out.print(s[i][j]+" ");
}
}
System.out.println();
}
}