蓝桥杯练习题——字母图形
问题描述
利用字母可以组成一些美丽的图形,下面给出了一个例子:
ABCDEFG
BABCDEF
CBABCDE
DCBABCD
EDCBABC
这是一个5行7列的图形,请找出这个图形的规律,并输出一个n行m列的图形。
**思路:**以(0,0)开始的对角线为界,左边逆序,右面正序,先把第一列填完,在填左右两部分
#include<iostream>
using namespace std;
int main(){
int row,col;
cin>>row>>col;
char a[row][col];
for(int i=0;i<row;i++){ //每一行
a[i][0]='A'+i; //第一行首元素
for(int j=1;j<=i;j++){ //填写对角线左半部分
a[i][j]=a[i][j-1]-1;
if(j==i) a[i][j]='A';
}
for(int j=i+1;j<col;j++){ //填写对角线右半部分
a[i][j]=a[i][j-1]+1;
}
}
for(int i=0;i<row;i++){
for(int j=0;j<col;j++){
cout<<a[i][j];
}
cout<<endl;
}
return 0;
}
//把每一行的'A',作为分界线,或者说整个图形的'A'作为对角线,
//对角线左边是逆序的,对角线右边是正序的,
//有的当 n > m 时图形可能没有A,不过没有关系,我们的循环的限制,
//所以动脑找规律真的很重要