【题目】
输入一个正整数 n,请使用大写字母拼成一个这样的三角形图案(参考样例输入输出):三角形图案的第 1 行有 1 个字母,第 2 行有 2 个字母,以此类推; 在三角形图案中,由上至下、由左至右依次由大写字母 A-Z 填充,每次使用大写字母 Z 填充后,将从头使用大写字母 A 填充。 【输入描述】
输入一行,包含一个正整数 n。约定 2≤n≤40。
【输出描述】
输出符合要求的三角形图案。注意每行三角形图案的右侧不要有多余的空格。
【样例输入 1】
3
【样例输出 1】
A
BC
DEF
【样例输入 2】
7
【样例输出 2】
A
BC
DEF
GHIJ
KLMNO
PQRSTU
VWXYZAB
【解题思路】
所有图形的输出都需要用到双层循环,外层循环控制输出多少行,内层循环控制每一个输出内容和个数。
字母连续输出只需要每输出完当前字母后,该变量+1,为下一次输出做准备,但是当变量+1后值超过了Z,则表示当前输出了Z,下一次要输出A,需要将变量重新赋值A,准备下一次输出。
【代码】
cpp
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin>>n;
char ch='A';//首字母
for(int i=1;i<=n;i++)//外层循环控制行
{ for(int j=1;j<=i;j++)//内层循环控制第i行输出i个字母
{
cout<<ch;
ch+=1;//字母从A开始输出,每输出完当前字母后,字母+1,下一次输出下一个字母
if(ch>'Z')//当字母+1大于Z后,表示上一个字母输出的是Z,下一次,要从A开始输出
ch='A';
}
cout<<endl;
}
return 0;
}