经典例题——字母图形(LQ)

蓝桥杯练习题——字母图形

问题描述 利用字母可以组成一些美丽的图形,下面给出了一个例子:

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,不过没有关系,我们的循环的限制,
//所以动脑找规律真的很重要
经验分享 程序员 微信小程序 职场和发展