蓝桥杯每日一练之字母图形

143 阅读2分钟

「这是我参与2022首次更文挑战的第15天,活动详情查看:2022首次更文挑战

💛作者主页:静Yu

🧡简介:CSDN全栈优质创作者、华为云享专家、前端知识交流社区创建者

💛社区地址:bbs.csdn.net/forums/Jing…

第十三届蓝桥杯大赛个人赛省赛比赛将于2022年4月9日(星期六)举办,趁现在寒假的时间抓紧时间备战一下。因为博主本人报名是C/C++组,所以更新所有内容都是C/C++相关知识。题目全部都是蓝桥杯官网题库真题。今天是备战刷题的第九天。

题目:

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

ABCDEFG

BABCDEF

CBABCDE

DCBABCD

EDCBABC

这是一个5行7列的图形,请找出这个图形的规律,并输出一个n行m列的图形。

输入格式:

输入一行,包含两个整数n和m,分别表示你要输出的图形的行数的列数。

输出格式:

输出n行,每个m个字符,为你的图形。

样例输入:

5 7

样例输出:

ABCDEFG
BABCDEF
CBABCDE
DCBABCD
EDCBABC

解题思路:

本道题目也是基础题,主要还是发现字符串排序的规则。本道题目解题用了嵌套循环,外层循环表示一共有多少行,内层循环表示每一行一共有多少列。规则就是在大写字母A的基础上调整65+abs(i-j),A的ASCLL码是65,字符串输出规则是这个数所处位置的行数减去所处位置的列数的绝对值。abs()函数是绝对值函数,绝对值函数的头文件是#include<math.h>,要记得写头文件。 绝对值函数应用示例:


#include <iostream>     
#include <math.h>        
using namespace std;
int main ()
{
 cout << "abs (100) = " <<abs (100) <<endl;  //输出一百的绝对值
 cout << "abs (-100)  = " <<abs (-100) <<endl; //输出负一百的绝对值
  return 0;
}

运行结果:

image.png

完整代码:

#include<stdio.h>
#include<math.h>
int main()
{
    int m,n;
    scanf("%d%d",&n,&m);
    int i,j;
    for(i=0;i<n;i++)
    {
         for(j=0;j<m;j++)
         {
              printf("%c",65+abs(i-j));   //观察字符串规律输出
         }
         printf("\n");
    } 
   return 0;
}