题目
代码如下
class RectangleTest {
public static void main ( String[ ] args) {
Scanner scanner = new Scanner ( System. in) ;
System. out. println ( "输入一个数字" ) ;
int len = scanner. nextInt ( ) ;
int [ ] [ ] arr = new int [ len ] [ len ] ;
int s = len * len ;
int k = 1 ;
int i = 0 , j = 0 ;
for ( int m = 1 ; m <= s; m++ ) {
if ( k == 1 ) {
if ( j < len && arr[ i] [ j] == 0 ) {
arr[ i] [ j++ ] = m;
} else {
k = 2 ;
i++ ;
j-- ;
m-- ;
}
} else if ( k == 2 ) {
if ( i < len && arr[ i] [ j] == 0 ) {
arr[ i++ ] [ j] = m;
} else {
k = 3 ;
i-- ;
j-- ;
m-- ;
}
} else if ( k == 3 ) {
if ( j >= 0 && arr[ i] [ j] == 0 ) {
arr[ i] [ j-- ] = m;
} else {
k = 4 ;
i-- ;
j++ ;
m-- ;
}
} else if ( k == 4 ) {
if ( i >= 0 && arr[ i] [ j] == 0 ) {
arr[ i-- ] [ j] = m;
} else {
k = 1 ;
i++ ;
j++ ;
m-- ;
}
}
}
for ( int m = 0 ; m < arr. length; m++ ) {
for ( int n = 0 ; n < arr[ m] . length; n++ ) {
System. out. print ( arr[ m] [ n] + "\t" ) ;
}
System. out. println ( ) ;
}
}
}