本质是for循环练习,金字塔在文后
一、初级阶段:输出菱形星星
这是一个for循环小练习
为满足强迫症需求, Leo先放个图爽一爽
算法本身不难, 注意循环结束条件, 初值的设置, 利用等差公式等等
要点有以下几点:
1.菱形行数一定为奇数
2.分上下2部分
3.上三角比下三角多一层 (行)
4.上半部分, 包含对称行, (n+1)/2行 【n为总行数】
5.下半部分, 不包括对称行, n/2 行
6.上半部分
第 i 行空格数: (n+1)/2 - i
第 i 行 " * " 数: j = 2 i - 1
7.下半部分【i 重新从1计数】
第 i 行空格数: i
第 i 行 " * " 数: j = n - 2 i【解释在下面】
8. 虽然下三角是倒着的, 但也满足等差数列, 公差为-2
问题是首项为几?
首项的 "*" 数其实等于对称行前一行的 "*" 数目,
上半部的星号个数满足:
j = 2i -1
对称行前一行的 i 值为
i = (n+1)/2 - 1
代入得
j = n - 2
所以n - 2就是下面等差数列的首项
下三角不包含