题目:输出一个大写字母组成的金字塔,如下图:
其中space表示金字塔底距离左边的空白长度,x表示金字塔底的中心字母。
比如:space=0, x=’C’,则输出:
A
ABA
ABCBA
再如:space=2,x=’E’, 则输出:
A
ABA
ABCBA
ABCDCBA
ABCDEDCBA
本题目采用递归解答,代码如下:
#include <iostream>
#include <string>
using namespace std;
void print(int space,char x){
int i;
if(x<'A' || x>'Z')return ;
print(space+1,x-1);
for(i=0;i<space;++i)cout<<" ";
for(i=0;i<=x-'A';++i)cout<<(char)('A'+i);
for(i=1;i<=x-'A';++i)cout<<(char)(x-i);
cout<<endl;
}
int main(){
int space;
char x;
cin>>space>>x;
print(space,x);
return 0;
}
代码相对简单,呵呵!!