public static void sss() {
// 1 2 3 4 5
// 16 17 18 19 6
// 15 24 25 20 7
// 14 23 22 21 8
// 13 12 11 10 9
int[][] ar= new int[5][5];
for(int i = 0; i < 25; i++)
ar[i/5][i%5]=0;
int dir_index = 0;
int x=0,y=0;
for(int i = 0; i < 25; i++){
ar[x][y]=i+1;
while(i+1 != 25) {
if(dir_index == 0) { // right
if(x != 4 && ar[x+1][y] == 0){
x++;
break;
}
}
else if(dir_index == 1) { // down
if(y != 4&& ar[x][y+1] == 0){
y++;
break;
}
}
else if(dir_index == 2) { // left
if(x != 0 && ar[x-1][y] == 0){
x--;
break;
}
}else { // up
if(y != 0 && ar[x][y-1] == 0){
y--;
break;
}
}
dir_index = (dir_index+1) % 4;
}
}
for(int j = 0; j < 5; j++) {
for(int i = 0; i < 5; i++)
System.out.print((ar[i][j]<10?" ":"")+ar[i][j]+" ");
System.out.println();
}
}
// 1 2 3 4 5
// 16 17 18 19 6
// 15 24 25 20 7
// 14 23 22 21 8
// 13 12 11 10 9
int[][] ar= new int[5][5];
for(int i = 0; i < 25; i++)
ar[i/5][i%5]=0;
int dir_index = 0;
int x=0,y=0;
for(int i = 0; i < 25; i++){
ar[x][y]=i+1;
while(i+1 != 25) {
if(dir_index == 0) { // right
if(x != 4 && ar[x+1][y] == 0){
x++;
break;
}
}
else if(dir_index == 1) { // down
if(y != 4&& ar[x][y+1] == 0){
y++;
break;
}
}
else if(dir_index == 2) { // left
if(x != 0 && ar[x-1][y] == 0){
x--;
break;
}
}else { // up
if(y != 0 && ar[x][y-1] == 0){
y--;
break;
}
}
dir_index = (dir_index+1) % 4;
}
}
for(int j = 0; j < 5; j++) {
for(int i = 0; i < 5; i++)
System.out.print((ar[i][j]<10?" ":"")+ar[i][j]+" ");
System.out.println();
}
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货