返回首页 返回题库

菱形

C++ 入门 GESP二级真题 #数组#坐标运算

题目描述

题面描述

小A想绘制一个菱形。具体来说,需要绘制的菱形是一个n行n列的字符画,n是一个大于1的奇数。菱形的四个顶点依次位于第1行、第1列、第n行、第n列的正中间,使用#绘制。相邻顶点之间也用#连接。其余位置都是.。例如,一个5行5列的菱形字符画是这样的:

..#..
.#.#.
#...#
.#.#.
..#..

给定n,请你帮小A绘制对应的菱形。

输入格式

一行,一个正整数n。

输出格式

输出共n行,表示对应的菱形。

样例1

输入:

3

输出:

.#.
#.#
.#.

样例2

输入:

9

输出:

....#....
...#.#...
..#...#..
.#.....#.
#.......#
.#.....#.
..#...#..
...#.#...
....#....

数据范围

对于所有测试点,保证3 ≤ n ≤ 29 并且n为奇数。


时间限制

1.0 s

内存限制

512.0 MB

💡 查看提示(先自己想一想再看)
本题考察循环嵌套与条件判断,核心是利用菱形的坐标特性:对于n阶菱形,中心坐标为(n/2, n/2)(下标从0开始),当某个坐标(x,y)到中心的曼哈顿距离等于n/2时,该位置为'#',否则为'.'。注意输出每行结束后要换行,不要有多余空格。
⚙ 开始做这道题 0 人做过 · 0 收藏 · 6 浏览

讨论(0)