【题目来源】
【题目描述】
小 A 想绘制一个菱形。具体来说,需要绘制的菱形是一个 n 行 n 列的字符画,n 是一个大于 1 的奇数。菱形的四个顶点依次位于第 1 行、第 1 列、第 n 行、第 n 列的正中间,使用 # 绘制。相邻顶点之间也用 # 连接。其余位置都是 .。
例如,一个 5 行 5 列的菱形字符画是这样的:
给定 n,请你帮小 A 绘制对应的菱形。
【输入格式】
一行,一个正整数 n。
【输出格式】
输出共 n 行,表示对应的菱形。
【输入样例】
9
【输出样例】
【数据范围】
对于所有测试点,保证 3≤n≤29 并且 n 为奇数。
【算法分析】
本题关键点在于找规律。
● 在算法代码一中,若令 mid=n/2+1,则在 1~mid 行,j=mid±(i-1) 的位置为字符 ‘#’。在 mid+1~n 行,j=mid±(i-n) 的位置为字符 ‘#’。
● 在算法代码二中,有个更完美的规律:若令 mid=n/2+1,且 abs(i-mid)+abs(j-mid)==mid-1,则位置 (i,j) 处为字符 ‘#’。
【算法代码一】
【算法代码二】
【参考文献】