输出字符菱形

GitHub跳转原题关系图返回列表

按样例逐行输出由星号和空格组成的固定菱形图案。

OJ: luogu

题目 ID: B2025

难度:入门

标签:入门输出python

日期: 2026-07-15 23:33

题意

输出一个固定的星号菱形:

text
  *
 ***
*****
 ***
  *

思路

没有输入,也没有计算。每一行的前导空格都是图案的一部分,需要原样输出。

本题不写暴力程序,因为它只是固定格式输出。

Python 知识

  • 可以连续调用多次 print,每次输出一行。
  • 字符串开头的空格会被保留,例如 " *" 会输出两个空格再输出星号。
  • 写图案题时,最重要的是不要漏掉前导空格。

代码

python
print("  *")
print(" ***")
print("*****")
print(" ***")
print("  *")
cpp
/**
 * Author by Rainboy blog: https://rainboylv.com github: https://github.com/rainboylvx
 * rbook: -> https://rbook.roj.ac.cn  https://rbook2.roj.ac.cn
 * rainboy的学习导航网站: https://idx.roj.ac.cn
 * create_at: 2026-07-27 00:00
 * update_at: 2026-07-27 00:00
 */

#include <bits/stdc++.h>
using namespace std;

int main() {
    // 按行输出固定的星号菱形,注意每行开头的空格不能漏掉
    cout << "  *" << endl;
    cout << " ***" << endl;
    cout << "*****" << endl;
    cout << " ***" << endl;
    cout << "  *" << endl;
    return 0;
}

Pythonic 写法

多行字符串:

python
print("  *\n ***\n*****\n ***\n  *")

复杂度

时间复杂度是 O(1)O(1),空间复杂度是 O(1)O(1)

总结

固定图案输出题的关键不是算法,而是让程序输出与样例完全一致的空格和字符。