import java.util.*;
public class lianxi {
public static void main(String[] args) {
int N=3;
int[][] a = new int[N][N];
int i=0; //行
int j=N/2; //列
a[i][j]=1;
for(int n=2;n<=N*N;n++)
{
//往45度方向放下一个数字
i--;
j++;
if(i<0 && j>=N)//两边越界,//行和列都越界
{
i=i+2;
j--;
}
else if(i<0)//行越界
{
i=N-1;
}
else if(j>=N) //列越界
{
j=0;
}
else if(a[i][j]!=0) //有冲突
{
i=i+2;
j--;
}
a[i][j]=n;
}
//输出
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
{
System.out.print(a[i][j] + "\t");
}
System.out.println();
}
}
}
结果是:
8 1 6
3 5 7
4 9 2
import java.util.*;
public class lianxi2 {
public static void main(String[] args) {
int N = 3;
int[][] a = new int[N][N];
int i = 0;
int j = N/2;
a[i][j] = 1;
for(int n=2;n<=N*N;n++){
i--;
j++;
if(i<0 && j>=N){
i+=2;
j--;
}
else if(i<0){
i=N-1;
}
else if(j>=N){
j=0;
}
else if(a[i][j]!=0){
i+=2;
i--;
}
a[i][j]=n;
}
for(i=0;i<N;i++){
for(j=0;j<N;j++){
System.out.print(a[i][j]+"\t");
}
System.out.println();
}
}
}
结果是:
7 1 5
3 4 6
0 8 9