1. 题目解析与需求拆解
这道题目要求我们编写一个程序,根据输入的正整数n,输出一个由大写字母组成的三角形图案。具体规则如下:
- 三角形有n行
- 第i行有i个字母(i从1开始)
- 字母从A开始依次递增填充
- 当超过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开始依次递增,需要考虑:
- 如何表示当前字母(使用char类型变量)
- 如何实现字母递增(ch += 1)
- 如何实现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; // 每行结束后换行
}
