测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

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

填空题 较易

题目描述

菱形

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

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

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

输入格式

一行,一个正整数n 。

输出格式

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

样例

输入样例 1

3

输出样例 1

.#.
#.#
.#.

输入样例 2

9

输出样例 2

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

数据范围

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

参考答案

#include <algorithm> #include <cstdio> using namespace std; int main() { int n, i, j, k; scanf("%d", &n); k = n / 2; for (i = 1; i <= n; i++) { for (j = 1; j <= n; j++) { if (abs(k - i + 1) + abs(k - j + 1) == k) printf("#"); else printf("."); } printf("\n"); } return 0; }
上一题 下一题