TB椰程 TypeBuddy 打字搭子

练38.3 空心菱形

C++语法 · 循环结构 · 代码 · cpp · 难度 4/5 · 共 623 字

输出每条边 n 颗星的空心菱形

  • C++语法
  • 练习

正文

// 原题:https://oj.yecheng.tv/p/P232
// 题意:输入 n,输出空心菱形,
//       每条边由 n 个星号组成。
// 思路:共 2n-1 行,行号到中线的距离 d 决定
//       首星位置和两颗星之间的空隙。
#include <iostream>
using namespace std;

int main() {
    int n;
    cin >> n;
    for (int i = 0; i < 2 * n - 1; i++) {
        int d = n - 1 - i;
        if (d < 0) d = -d;
        // 首星前的空格
        for (int s = 0; s < d; s++) cout << " ";
        cout << "*";
        // 不是最上/最下行时还有第二颗星
        if (d < n - 1) {
            int gap = 2 * (n - 1 - d) - 1;
            for (int s = 0; s < gap; s++) cout << " ";
            cout << "*";
        }
        cout << endl;
    }
    return 0;
}

C++语法 · 循环结构的其它内容

打字首页 · 词库画廊 · 编程打字 · 指法入门 · 天梯榜 · 数据分析 · 班级课堂 · 关于我们
椰程 TypeBuddy 打字搭子 —— 键盘指法练习 · 单词记忆 · 班级课堂 · 在线 PK