【解析】习题4-9 打印菱形图案 | C语言实现 | PTA
输入格式:
输入在一行中给出一个正的奇数n。
输出格式:
输出由n行星号“*”组成的菱形,如样例所示。每个星号后跟一个空格。
输入样例:
1 | 7 |
输出样例:
1 | * |
评价:
卧槽……这玩意真的写的我脑汁都快没了,看了其他大神写的感觉自己写的还是不那么美,但总归是写出来了,以下是代码:
1 |
|
简单分析下原理,我这边的实现方式是,先尝试输出半个菱形,再修改算法让他倒着输出,然后通过if不输出中间那一行;这是整体的原理。
下面说以下局部的原理,对于每一行,他实质上是这样组成的:“一堆空格”+若干个“ ”(注意后面是有空格的)
而为了让他形成类似菱形的排布,我们可以通过观察示例中给的7行菱形看到以下规律:
我们只看上半部分的情况下,也就是1~4行:
1.每一行的空格到中间空格数量递减顺序为: 6、4、2、0
2.每一行的到中间的的数量递增顺序为:1、3、5、7
于是我们就安排循环嵌套循环就大致实现了半个菱形的输出。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 张麦麦的博客!
评论