数字游戏
2014-05-10 15:31
176 查看
网上看到这样一道面试题,于是没事干的时候就把它给实现了。
public class Test3 {
/* 蛇形矩阵
【样例输出】
1 3 6 10 15
2 5 9 14
4 8 13
7 12
11
*/
public static void main(String[] args) {
Test3 t=new Test3();
t.test(8);
}
public void test(int n) {
int arr[][]=new int
;
arr[0][0]=1;
int column=n;
for (int i = 0; i < n; i++) {
for (int j = 0; j < column; j++) {
if(j==0){//第一列
if(i>0)
arr[i][j]=arr[i-1][j]+i;
}else{
//一行中某列与前一列的关系
arr[i][j]=arr[i][j-1]+(i+1+j);
}
}
column-=1;
}
//输出
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if(arr[i][j]!=0)
System.out.print(arr[i][j]+" ");
}
System.out.println(); //换行
}
}
}
运行效果如图:
public class Test3 {
/* 蛇形矩阵
【样例输出】
1 3 6 10 15
2 5 9 14
4 8 13
7 12
11
*/
public static void main(String[] args) {
Test3 t=new Test3();
t.test(8);
}
public void test(int n) {
int arr[][]=new int
;
arr[0][0]=1;
int column=n;
for (int i = 0; i < n; i++) {
for (int j = 0; j < column; j++) {
if(j==0){//第一列
if(i>0)
arr[i][j]=arr[i-1][j]+i;
}else{
//一行中某列与前一列的关系
arr[i][j]=arr[i][j-1]+(i+1+j);
}
}
column-=1;
}
//输出
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if(arr[i][j]!=0)
System.out.print(arr[i][j]+" ");
}
System.out.println(); //换行
}
}
}
运行效果如图: