习题二,8.1
D:\myjava>javac Ex020801.java
D:\myjava>java Ex020801
1 2 6 7
3 5 8 13
4 9 12 14
10 11 15 16
变量说明
public class Ex020801
{
public static void main(String args[])
{
int i=0,j=0,k,n=4;
boolean up=true;
int mat[][]=new int[n][n];
向上
for (k=1;k<=n*n;k++)
{
mat[i][j]=k;
if (up)
{ i--;j++;
if ((i<0)&(j>n-1))
{i++;i++;j--;up=!up;}
else
{ if (i<0) {i++;up=!up;}
if (j>n-1) {i++;i++;j--;up=!up;}
}
}
向下
else
{ i++;j--;
if ((i>n-1)&(j<0))
{i--;j++;j++;up=!up;}
else
{ if (j<0) {j++;up=!up;}
if (i>n-1) {j++;j++;i--;up=!up;}
}
}
}
输出
for (i=0;i<n;i++)
{ for (j=0;j<n;j++)
System.out.print("\t"+mat[i][j]);
System.out.println();
}
}
}
n==5时
D:\myjava>javac Ex020801.java
D:\myjava>java Ex020801
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
n==6时
1 2 6 7 15 16
3 5 8 14 17 26
4 9 13 18 25 27
10 12 19 24 28 33
11 20 23 29 32 34
21 22 30 31 35 36
习题二,8.2
1 2 5 10
4 3 6 11
9 8 7 12
16 15 14 13
D:\myjava>javac Ex020801.java
D:\myjava>java Ex020801
1 2 6 7
3 5 8 13
4 9 12 14
10 11 15 16
变量说明
public class Ex020801
{
public static void main(String args[])
{
int i=0,j=0,k,n=4;
boolean up=true;
int mat[][]=new int[n][n];
向上
for (k=1;k<=n*n;k++)
{
mat[i][j]=k;
if (up)
{ i--;j++;
if ((i<0)&(j>n-1))
{i++;i++;j--;up=!up;}
else
{ if (i<0) {i++;up=!up;}
if (j>n-1) {i++;i++;j--;up=!up;}
}
}
向下
else
{ i++;j--;
if ((i>n-1)&(j<0))
{i--;j++;j++;up=!up;}
else
{ if (j<0) {j++;up=!up;}
if (i>n-1) {j++;j++;i--;up=!up;}
}
}
}
输出
for (i=0;i<n;i++)
{ for (j=0;j<n;j++)
System.out.print("\t"+mat[i][j]);
System.out.println();
}
}
}
n==5时
D:\myjava>javac Ex020801.java
D:\myjava>java Ex020801
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
n==6时
1 2 6 7 15 16
3 5 8 14 17 26
4 9 13 18 25 27
10 12 19 24 28 33
11 20 23 29 32 34
21 22 30 31 35 36
习题二,8.2
1 2 5 10
4 3 6 11
9 8 7 12
16 15 14 13