找规律再动手
约 10 分钟
图形题最忌讳一上来就写代码。正确顺序是:先在草稿纸上把前三四行原样画出来,再数一数每行分别有几个空格、几个星号,把数据列成一张小表。规律往往一眼就能看出来——多半是关于行号 的一次式。
比如画一个 4 行的倒直角三角形,数出来:
| 行 | 空格 | 星号 |
|---|---|---|
| 1 | 0 | 4 |
| 2 | 1 | 3 |
| 3 | 2 | 2 |
| 4 | 3 | 1 |
一看就懂:空格是 个,星号是 个。翻译成代码:
int n = 4;
for (int i = 1; i <= n; i++) {
for (int k = 0; k < i - 1; k++) cout << ' '; // 空格 i-1
for (int k = 0; k < n + 1 - i; k++) cout << '*'; // 星号 n+1-i
cout << '\n';
}
先列表、后写式子、再落成循环边界,几乎不会出错。反过来,凭感觉硬凑循环上限,边界差 1(多一行、少一列)是这类题最常见的失分点。
小纸条
在纸上画出 4 行的等腰三角形,数出每行的空格数。
登录 后可看答案