题目描述
输入
输入一个正整数n
输出
按照样例输出。
样例输入
2
样例输出
ABCBA
BCB
C
BCB
ABCBA
样例输入2
3
样例输出2
ABCDCBA
BCDCB
CDC
D
CDC
BCDCB
ABCDCBA
做法1 —— 找规律
#include <bits/stdc++.h>
using namespace std;
int main() {
int n;
cin >> n;
/* 以n=2为例 ABCBA共需要2*n+1=5个字节 */
string s(2 * n + 1, ' ');
/* 左右对称地进行赋值 */
for (int i = 0; i <= n; ++i) s[i] = s[2 * n - i] = (char) ('A' + i);
for (int i = 0; i <= n; ++i) {
/* 第i行输出i个空格符 i的范围是从第0行到第n行 */
for (int j = 0; j < i; ++j) cout << " ";
/* 字母则从s串的第i个字符开始输出 直到第2*n-i个字符(对称位置) */
for (int j = i; j <= 2 * n - i; ++j) cout << s[j];
cout << endl;
}
for (int i = n - 1; i >= 0; --i) {
for (int j = 0; j < i; ++j) cout << " ";
for (int j = i; j <= 2 * n - i; ++j) cout << s[j];
cout << endl;
}
return 0;
}