测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A28692. 给定一个奇数n和一个大写字母Center,生成一个n x n的字符矩 阵。字符矩阵由大写字母和'.' (注意: '.' 为英文句号)组成,并且所有大写字母组成一个n行的萎形,菱形的中心位置为大写字母Center,菱形中 的大写字母规律参照”下列三组样例。例1, n= 3, Center= 'C',字符矩阵为:.B. BCB .B.例2, n= 5,Center = 'Z',字符矩阵为:..X..…

填空题 中等

题目描述

给定一个奇数n和一个大写字母Center,生成一个n x n的字符矩 阵。字符矩阵由大写字母和'.' (注意: '.' 为英文句号)组成,并且所有大写字母组成一个n行的萎形,菱形的中心位置为大写字母Center,菱形中 的大写字母规律参照”下列三组样例。

例1, n= 3, Center= 'C',字符矩阵为:

.B.
BCB
.B.

例2, n= 5,Center = 'Z',字符矩阵为:

..X..
.XYX.
XYZYX 
.XYX. 
..X..

输入样例

9
E

输出样例

....A....
...ABA...
..ABCBA..
.ABCDCBA.
ABCDEDCBA
.ABCDCBA.
..ABCBA..
...ABA...
....A....

参考答案

#include<bits/stdc++.h> using namespace std; char ch; int n; int main() { cin>>n>>ch; int dta=ch-'A',centerx=n/2+1,centery=n/2+1; for(int i=1;i<=n;i++) { for(int j=1;j<=n;j++) { int d=abs(i-centerx)+abs(j-centery); if(d>dta||d>n/2) cout<<'.'; else cout<<char('A'+dta-d); } cout<<endl; } return 0; }
上一题 下一题