- <font color="#800080"><p style="line-height: 30px; text-indent: 2em;"></p><div style="text-align: center;"><span style="line-height: 2.2em;"><p style="line-height: 30px; text-indent: 2em;"></p><div style="text-align: left;"><span style="line-height: 2.2em;">import java.util.Scanner;</span></div></span></div>
- public class luoxuan {
- public static void main(String[] args) {
- //scanner键盘输入整数,
- Scanner sc = new Scanner(System.in);
- int N = sc.nextInt();
- //定义变量和数组
- int num =1;
- int [][] arr = new int [N][N];
- int m =0,i,j;
- //判断输入整数的奇偶。
- if(N%2 == 0)
- m = N/2;
- else
- m = N/2+1;
- // ^ --->
- // | |
- // <--- v
- //就是个圈圈,每走一行或一列,都会少一,看下面代码就知道很多都是对应的。
- for(i=0 ; i<= m-1 ; i++)
- {
- for(j =i ; j <=N-i-1 ;j++)//--> 0行,行不变,列变arr的i是固定的j在变,
- {
- arr[i][j] = num;
- num++;
- }
- for(j =i+1 ; j <=N-i-1 ;j++)//| N-i-1列,就是最右侧一列,不变,行在变j。
- {
- arr[j][N-i-1] = num;
- num++;
- }
- for(j =N-i-2 ; j >=i ;j--)//<-- N-i-1行不变,j列在变,逐渐在缩小,
- {
- arr[N-i-1][j] = num;
- num++;
- }
- for(j =N-i-2 ; j >=i+1 ;j--)//| 第i列不变,行在逐渐缩小。
- {
- arr[j][i] = num;
- num++;
- }
- }
- for(i =0 ; i <N ;i++)
- {
- for(j =0 ;j <N ;j++)
- {
- System.out.print(arr[i][j]+"\t");//打印数组数据。
- }
- //打印空换行。
- System.out.println("");
- }
- //关闭Scanner
- sc.close();
-
- }
- }</font>
复制代码
|
|