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;
}
上一题
下一题