输出倒三角形
由题目可以看出,输出共有
n
n
n 行,第
1
1
1 行输出
n
n
n 个字符,第
2
2
2 行输出
n
−
1
n-1
n−1 个字符,
…
\dots
…,第
n
n
n 行输出
1
1
1 个字符。
对于这种
n
,
n
−
1
,
n
−
2
,
…
,
1
n,n-1,n-2,\dots,1
n,n−1,n−2,…,1 的序列,我们可以有
2
2
2 种方法产生:
- 循环变量
i
从n
开始,每次--i
,直到1
为止;
i | n | n-1 | n-2 | n-3 | … | 2 | 1 |
---|---|---|---|---|---|---|---|
x | n | n-1 | n-2 | n-3 | … | 2 | 1 |
- 通过观察可以发现,第
i
个数x
一定满足x=n-i+1
。
i | 1 | 2 | 3 | 4 | … | n-1 | n |
---|---|---|---|---|---|---|---|
x | n | n-1 | n-2 | n-3 | … | 2 | 1 |
n-i+1 | n-1+1 | n-2+1 | n-3+1 | n-4+1 | … | n-(n-1)+1 | n-n+1 |
打印图形
两种思路:
- 把图形分成 3 3 3 部分,第 1 1 1 行,中间 n − 2 n-2 n−2 行,第 n n n 行,注意中间每行两个星花间的空格都需要实际输出,否则两个星花是紧挨在一起的;
- 统一看成一个整体,用两层循环,当每行输出的位置既不是第 1 1 1 列,也不是第 n n n 列时,以当前是否是第 1 1 1 行或者第 n n n 行为判断标准,决定在此是输出星花还是空格。