我们想要打印一个菱形,可以将菱形切分开,将其分为上下两部分:
那么,现在这个菱形就是由一个三角形与一个倒三角型组成,且倒三角的高度比三角形的少1行。
接下来,为了打印三角形我们是不是要分别打印空格与星号?
那么空格与星号的数量如何分配呢?
假设上半部分有 len 行,那么下半部分就是 len-1 行,为了方便观察,我们再将菱形分成四份。
我们定义变量 i 控制行数的变化
我们可以看到,上半部分,左半边的空格数是随行数 i 递减的,每次都要减少 i 个(右半边同理)。而 * 则需从整个上半部分看,它的数量是1+2*(len-1)。
下半部分,左半边,空格是随着行数 i 逐渐增加的,每次要增加 i 个(右半部分同理)。而 * 的数量则是(2*(len)-1)-2*i个。
下面实际代码: