B4547 彩色方框
题目描述
题目给定一个整数 $n$。请你输出一个 $n$ 行 $n$ 列的方形图案。
这个图案从外到内一圈一圈变化:
- 第 $1$ 圈(最外圈)为 `#`。
- 第 $2$ 圈为 `.`。
- 第 $3$ 圈为 `#`。
- 以此类推:奇数圈为 `#`,偶数圈为 `.`。
例如,当 $n=5$ 时,图案为:
```text
#####
#...#
#.#.#
#...#
#####
```
:::info[如何判断一个位置属于第几圈?]
对于第 $i$ 行第 $j$ 列,计算它到四条边的距离:到上边 $i-1$,到下边 $n-i$,到左边 $j-1$,到右边 $n-j$。取这四个距离中的最小值再加 $1$,就是该位置所在的圈数。圈数是奇数则输出 `#`,是偶数则输出 `.`。
:::
例如 $n=5$ 时,第 $2$ 行第 $3$ 列:到上边隔着 $1$ 个格子,到下边隔着 $3$ 个格子,到左边隔着 $2$ 个格子,到右边隔着 $2$ 个格子。最小值为 $1$,$1+1=2$,因此该位置在第 $2$ 圈(偶数),应输出 `.`。
输入格式
一行一个整数 $n$。
输出格式
输出 $n$ 行,每行 $n$ 个字符,表示这个图案。
说明/提示
样例 $1$ 中,第 $1$ 圈和第 $3$ 圈输出 `#`,第 $2$ 圈输出 `.`。
样例 $3$ 中,图案从外到内依次为 `#`、`.`、`#`、`.`。
- 对于 $30\%$ 的数据,保证:$1\le n\le 5$。
- 对于另外 $40\%$ 的数据,保证:$1\le n\le 30$。
- 对于 $100\%$ 的数据,保证:$1\le n\le 100$。