C++实现字母三角形:循环结构与字符处理详解

1. 题目解析与需求拆解

这道题目要求我们编写一个程序,根据输入的正整数n,输出一个由大写字母组成的三角形图案。具体规则如下:

  1. 三角形有n行
  2. 第i行有i个字母(i从1开始)
  3. 字母从A开始依次递增填充
  4. 当超过Z时循环回到A继续

从样例输入输出可以看出:

  • 当n=3时,输出:
    A
    BC
    DEF
  • 当n=7时,输出:
    A
    BC
    DEF
    GHIJ
    KLMNO
    PQRSTU
    VWXYZAB

需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。

2. 解题思路分析

2.1 双层循环结构

这类图形输出问题通常采用双层循环结构:

  • 外层循环控制行数(i从1到n)
  • 内层循环控制每行的输出内容(每行输出i个字母)

2.2 字母循环处理

字母从A开始依次递增,需要考虑:

  1. 如何表示当前字母(使用char类型变量)
  2. 如何实现字母递增(ch += 1)
  3. 如何实现Z到A的循环(当ch > 'Z'时重置为'A')

2.3 输出格式控制

题目特别强调"每行三角形图案的右侧不要有多余的空格",这意味着:

  • 每行输出完字母后直接换行
  • 不要在任何字母后添加多余的空格

3. 代码实现详解

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

int main() {
    int n;
    cin >> n;  // 读取输入的n
    char ch = 'A';  // 初始化当前字母为A
    
    for(int i = 1; i <= n; i++) {  // 外层循环控制行数
        for(int j = 1; j <= i; j++) {  // 内层循环控制每行字母数
            cout << ch;  // 输出当前字母
            ch += 1;     // 字母递增
            
            // 字母循环处理
            if(ch > 'Z') {
                ch = 'A';
            }
        }
        cout << endl;  // 每行结束后换行
    }

内容推荐

已经到底了哦
已经到底了哦