输入整数 N,输出一个 N 阶的回字形二维数组。数组的最外层为 1,次外层为 2,以此类推。输入包含多行,每行包含一个整数 N。当输入 N=0 时结束,0≤N≤9。 java
时间: 2023-12-03 14:45:21 浏览: 57
以下是 Java 代码实现:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n;
while ((n = sc.nextInt()) != 0) {
int[][] arr = new int[n][n];
int num = 1;
for (int i = 0; i < (n + 1) / 2; i++) {
for (int j = i; j < n - i; j++) {
arr[i][j] = num;
arr[j][n - i - 1] = num;
arr[n - i - 1][n - j - 1] = num;
arr[n - j - 1][i] = num;
}
num++;
}
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
System.out.printf("%3d", arr[i][j]);
}
System.out.println();
}
}
}
}
```
算法思路:
- 定义一个二维数组 arr,用于存储回字形;
- 定义一个变量 num,表示当前填充的数字;
- 从最外层开始,每次填充一圈数字,然后进入下一层,直到填满整个二维数组。每次填充时,按照顺序填充上、右、下、左四个边,直到相遇为止;
- 最后输出二维数组。
时间复杂度:O(n^2)
空间复杂度:O(n^2)
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![java](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)