输入:7
输出:
D D
CD DC
BCD DCB
ABCDDCBA
BCD DCB
CD DC
D D
#include<stdio.h>
#include<vector>
#include<string>
#include<iostream>
#include<algorithm>
using namespace std;
int main() {
int n;
cin>>n;
vector<string> a(n,""),b(n,"");
int m=(n+1)/2;
int p=0;
for(int i=m-1;i>=0;i--){
for(int j=0;j<=i;j++)
a[i].push_back('A'+j+p);
b[i]=a[i];
reverse(b[i].begin(),b[i].end());
for(int j=i+1;j<m;j++){
a[i]+=" ";
b[i]+=" ";
}
p++;
}
p=0;
for(int i=n-1;i>=m;i--){
a[i]=a[p];
b[i]=b[p++];
}
for(int i=0;i<n;i++)
cout<<a[i]<<b[i]<<endl;
return 0;
}
private static void showImage(int lineNumber) {
int halfNum = lineNumber/2;
char sign = (char) ('A' + halfNum);
for (int temLine = 0; temLine <= halfNum * 2; temLine++) {
int lineSign = temLine;
if (lineSign > halfNum) {
lineSign -= (lineSign - halfNum) * 2;
}
char al = (char) (sign - lineSign);
for (int i = 0; i <= halfNum; i++) {
if (al > sign) {
System.out.print(" ");
continue;
}
System.out.print(al);
al++;
}
al = sign;
for (int i = 0; i <= halfNum; i++) {
if (i > lineSign) {
System.out.print(" ");
continue;
}
System.out.print(al);
al--;
}
System.out.println();
}
}
void func(int row_num)
{
int i, j;
int c_num = (row_num + 1) / 2;
char c11 = 'A' + c_num -1;
char c;
for (i = 0; i < c_num; i++) {
c = c11 - i;
while (c <= c11) {
printf("%c", c);
c += 1;
}
for (j = 0; j < row_num - 2*i + 1; j++) {
printf(" ");
}
c = c11;
while ((c11 - c) < i + 1) {
printf("%c", c);
c -= 1;
}
printf("\n");
}
for (i = row_num - c_num -1; i >= 0; i--) {
c = c11 - i;
while (c <= c11) {
printf("%c", c);
c += 1;
}
for (j = 0; j < row_num - 2*i + 1; j++) {
printf(" ");
}
c = c11;
while ((c11 - c) < i + 1) {
printf("%c", c);
c -= 1;
}
printf("\n");
}
}