第十四届蓝桥杯集训——练习解题阶段(无序阶段)-基础练习 字母图形

简介: 第十四届蓝桥杯集训——练习解题阶段(无序阶段)-基础练习 字母图形

第十四届蓝桥杯集训——练习解题阶段(无序阶段)-基础练习 字母图形


前言

       最近的一些文章都可能会很碎,写到哪里是哪里,过一阵子会具体的整理一遍,这里其它的类型题先往后排一排,因为蓝桥最后考的也就是对题目逻辑的理解能力,也就是dp分析能力了,所以就主要目标定在这里,最近的题目会很散,很多,基本上都是网罗全网的一些dp练习题进行二次训练,准备比赛的学生底子薄的先不建议看啊,当然,脑子快的例外,可以直接跳过之前的一切直接来看即可,只需要你在高中的时候数学成绩还可以那就没啥问题,其实,dp就是规律总结,我们只需要推导出对应题目的数学规律就可以直接操作,可能是一维数组,也可能是二维数组,总体来看二维数组的较多,但是如果能降为的话建议降为,因为如果降为起来你看看时间复杂度就知道咋回事了,那么在这里祝大家能无序的各种看明白,争取能帮助到大家。


基础练习 字母图形

资源限制

内存限制:256.0MB   C/C++时间限制:1.0s   Java时间限制:3.0s   Python时间限制:5.0s

问题描述

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

ABCDEFG

BABCDEF

CBABCDE

DCBABCD

EDCBABC

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

输入格式

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

输出格式

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

样例输入

5 7

样例输出

ABCDEFG

BABCDEF

CBABCDE

DCBABCD

EDCBABC

数据规模与约定

1 <= n, m <= 26

题解:

这个题目的规律还是很容易找到的,就是根据输入的两个数,第一个数n是行数,第二个数m是列数,行数挨个排序就行,首字母逐一向后排;列数控制着字符应该最大显示长度。

C语言

别看代码多,但是规律是很明显的。

#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 26
//输出
void Print(char matrix[MAXSIZE][MAXSIZE],int n,int m)
{
  int i,j;
  for(i=0;i<n;i++)
  {
    for(j=0;j<m;j++)
    {
      printf("%c",matrix[i][j]);
    }
    printf("\n");
  }
}
//实现字母图形
void Drawing(int n,int m)
{
  int i,j;
  int point=0;
  char str;
  char matrix[MAXSIZE][MAXSIZE];
  for(i=0;i<n;i++)
  {
    str='A';
    for(j=i;j<m;j++)
    {
      matrix[i][j]=str++;
    }
    str='A';
    for(j=i-1;j>=0;j--)
    {
      matrix[i][j]=++str;
    }
  }
  Print(matrix,n,m);
}
int main()
{
  int n,m;
  scanf("%d%d",&n,&m);
  Drawing(n,m);
  return 0;
}

C++语言

能简洁一些还是很不错的。

#include <iostream>
#include <cmath>
using namespace std;
int main()
{
    int n, m;
    cin >> n >> m;
    for (int i = 0; i < n; ++i)
    {
        for (int j = 0; j < m; ++j)
            cout << char('A'+abs(i-j));
        cout << endl;
    }
    return 0;
}

Java语言

这里可以看到对坐标的处理方法,建议通过绘图的方式来解决这个题目。

import java.io.*;
import java.util.Scanner;
public class Main {
    public static void main(String[] args) throws IOException {
        Scanner sc = new Scanner(System.in);
        int n=sc.nextInt();
        int m=sc.nextInt();
        sc.close();
        char[][] a = new char[n][m];
        a[0][0] = 'A';
        for (int i = 1; i < n; i++) a[i][0] = (char) (a[i - 1][0] + 1);
        for (int i = 1; i < m; i++) a[0][i] = (char) (a[0][i - 1] + 1);
        for (int i = 1; i < n; i++) for (int j = 1; j < m; j++) a[i][j] = a[i - 1][j - 1];
        for (char[] i : a) {
            for (char j : i) {
                System.out.print(j);
            }
            System.out.println();
        }
    }
}

Python语言

Python相对来说由于是弱类型的变量,在处理一些内容的时候是非常方便的,根本不需要考虑各种变量类型之间的变化问题。

m,n = map(int,input().split())
for i in range(1,m+1):
    for j in range(1,n+1):
        if j == n:
            print(chr(abs(i-j)+65),end='\n')
        else:
            print(chr(abs(i-j)+65),end='')

总结

这个题目也算是一个坐标题目,多做做坐标题目是非常有好处的,后面解题很多很多都是各种坐标的处理呢。

没有什么不付出就能拿到的结果,我们都是在负重前行,最终结果与自身先天的脑力有一定的关系,但是还是有很大一部分看自己后天的努力,其实从报名到比赛也就5个月左右,真正刷题的事件也就2个月,2个月回忆一下你真正的认真刷过题吗,如果你真的用尽所有的精力去努力了,那么我相信你最终的成绩一定会让你满意的,加油。


相关文章
|
1月前
|
人工智能 算法 Java
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1005 数字游戏
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1005 数字游戏
65 0
|
1月前
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1007 印章
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1007 印章
37 0
|
1月前
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1006 拿金币
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1006 拿金币
36 0
|
1月前
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1004 无聊的逗
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1004 无聊的逗
55 0
|
1月前
|
人工智能 算法 Java
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-992 士兵杀敌(二)
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-992 士兵杀敌(二)
37 1
|
1月前
|
Java C语言 C++
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1000 kAc给糖果你吃
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1000 kAc给糖果你吃
52 0
|
1月前
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-999 数的潜能
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-999 数的潜能
50 0
|
1月前
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-997 粘木棍
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-997 粘木棍
61 0
|
1月前
|
机器学习/深度学习 算法 Java
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-996 车的放置
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-996 车的放置
55 0
|
1月前
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-986 藏匿的刺客
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-986 藏匿的刺客
54 0