C++输出字母菱形
题目描述:
输入一个正整数 n,并输出一个菱形,这个菱形有 2n−1 行,第一行有 1 个字母 A,之后的 n−1 行每行字母会变成上一行的下一个(A 的下一个是 B),且数量会递增 2 个,后面的 n+1 行至 2n−1 行,会变成上一行的上一个(B 的上一个是 A),且数量会递减 2 个,同时,我们需要在每行前输出一定数量的空格,以保证菱形居中,注意末尾不要有多余的输出。
输入
输入一个正整数 n。(0<n<25)
输出
按照样例输出。
样例输入:
2
样例输出:
A
BBB
A
样例输入2:
3
样例输出2:
A
BBB
CCCCC
BBB
A
写的有些麻烦,但结果是对的,也懒得优化了
#include<iostream>
using namespace std;
int main(){
char a='A';
int n;
cin>>n;
for(int i = 0; i < n; i++){//两层for循环,下边两个在同一层,外循环输出上班层行数
for(int k = 0; k < n-i-1; k++)//第一个输出空格
cout<<" ";
for(int j = 0; j < 2*i+1; j++){//第二个输出字母
cout<<a;
}
a = a+1;//没输出一行字母加一
cout<<endl;
}
a = a-1;//这一步是必要的
for(int i = n-2; i >= 0; i--){//同上,输出下半层
for(int k = 0; k < n-i-1; k++)
cout<<" ";
a = a-1;
for(int j = 2*i+1; j > 0; j--){
cout<<a;
}
cout<<endl;
}
return 0;
}