字符三角形

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

读入一个字符,利用字符串乘法输出 1、3、5 个字符组成的等腰三角形。

OJ: luogu

题目 ID: B2005

难度:入门

标签:入门字符串输出python

日期: 2026-07-15 23:33

题意

输入一个字符,用它输出高为 3、底边长为 5 的等腰字符三角形。

例如输入 *,输出:

text
  *
 ***
*****

思路

三角形一共三行:

  1. 第一行:两个空格,再输出 1 个字符;
  2. 第二行:一个空格,再输出 3 个字符;
  3. 第三行:输出 5 个字符。

本题只是按规则构造固定小图案,不需要暴力程序。

Python 知识

  • input().strip() 读取一行并去掉换行。
  • 字符串可以乘整数,ch * 3 表示把字符重复三次。
  • f-string 可以把变量嵌入字符串,例如 f" {ch}"

代码

python
ch = input().strip()

print(f"  {ch}")
print(f" {ch * 3}")
print(ch * 5)
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() {
    char ch; // 输入的字符
    cin >> ch;
    // 输出等腰三角形,前导空格数分别为 2、1、0
    cout << "  " << ch << endl;
    cout << " " << ch << ch << ch << endl;
    cout << ch << ch << ch << ch << ch << endl;
    return 0;
}

Pythonic 写法

f-string + 乘法:

python
ch = input().strip()
print(f'  {ch}\n {ch * 3}\n{ch * 5}')

复杂度

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

总结

Python 的字符串乘法很适合写这种小图案题:字符重复几次,就直接写 ch * 次数