输入一个正整数n(代表图形的行数),输出如样例形式的图形。(小学生一枚,大神求解,谢谢哦)

输入: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");
}   

}