B3837 [GESP202303 二级] 画三角形 題解

· · 题解

欢迎大家报名洛谷网校的课程,期待和大家一起进步!

:::align{center} :::

思路分析

本题考查循环语句和分支语句。

根据题目,第一行有一个字母,第二行有两个字母,那么显然第 i 行一定有 i 个字母。可使用双层循环,外层表示行数,内层表示列数。

我们可以定义一个字符 c,初始为 \texttt{A},每过一次内层循环便将它的值加 1,以实现按照 \texttt{A}\texttt{Z} 的填充,并判断此时 c 是否为 \texttt{Z},若是则将其设定为 \texttt{A},重新一轮。

核心代码

外层循环 1n 行,内层循环 1i 列,输出 c 后判断是否为 \texttt{Z},若是则修改为 \texttt{A}

for (int i = 1; i <= n; i++) {
    for (int j = 1; j <= i; j++) {
        if (c != 'Z') cout << c++;
        else cout << 'Z', c = 'A';
    }
    puts ("");
}

注意事项