打印图形

10 分钟

打印三角形、菱形这类图形,核心是找出"第 行要打几个空格、几个星号",把它们写成关于 的式子。以 行等腰三角形为例( 从 1 数起),若第 行前面有 个空格、中间有 个星号,整幅图就左右对称了。

int n;                        // 等腰三角形,共 n 行
for (int i = 1; i <= n; i++) {
    for (int k = 0; k < n - i; k++) cout << ' ';     // 前导空格 n-i
    for (int k = 0; k < 2 * i - 1; k++) cout << '*'; // 星号 2i-1
    cout << '\n';             // 每行末尾换行
}

打印字符总量大约是 。几个必踩的坑:一是先打空格再打星号,顺序不能反;二是每行结束别忘了换行;三是循环从 1 还是从 0 开始要和公式配套——若 从 0 数,等腰三角形的星号数就变成 、空格是 。菱形可以拆成"上半个正三角 + 下半个倒三角"分别打印,倒三角把 反着枚举即可。

小纸条

打印一个 5 行的直角三角形,第 3 行几个星号?

登录 后可看答案

打印图形 · 考级冲刺 · op599 课程