循环题目讲解
输出倒三角形
由题目可以看出,输出共有 nnn 行,第 111 行输出 nnn 个字符,第 222 行输出 n−1n-1n−1 个字符,…\\dots…,第 nnn 行输出 111 个字符。
对于这种 n,n−1,n−2,…,1n,n-1,n-2,\\dots,1n,n−1,n−2,…,1 的序列,我们可以有 222 种方法产生:
- 循环变量
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 |
打印图形
两种思路:
- 把图形分成 333 部分,第 111 行,中间 n−2n-2n−2 行,第 nnn 行,注意中间每行两个星花间的空格都需要实际输出,否则两个星花是紧挨在一起的;
- 统一看成一个整体,用两层循环,当每行输出的位置既不是第 111 列,也不是第 nnn 列时,以当前是否是第 111 行或者第 nnn 行为判断标准,决定在此是输出星花还是空格。