zoukankan      html  css  js  c++  java
  • 【蓝桥杯】- 基础练习 字母图形

    问题描述
    利用字母可以组成一些美丽的图形,下面给出了一个例子:
    
    ABCDEFG
    
    BABCDEF
    
    CBABCDE
    
    DCBABCD
    
    EDCBABC
    
    这是一个5行7列的图形,请找出这个图形的规律,并输出一个n行m列的图形。
    
    输入格式
    输入一行,包含两个整数n和m,分别表示你要输出的图形的行数的列数。
    输出格式
    输出n行,每个m个字符,为你的图形。
    样例输入
    5 7
    样例输出
    ABCDEFG
    BABCDEF
    CBABCDE
    DCBABCD
    EDCBABC
    数据规模与约定
    1 <= n, m <= 26
    思路:
    1. 通过A的ASCII码值来加减进行输出。A的ASCII码值为 65
    2. 每一行的前半段都有A之后的元素,这个元素的个数取决于当前的行数,第1行0个,第2行1个,第3行2个,,并且是"倒序"
    3.
    每一行的后半段都有A之后的元素,这个元素的个数取决于当前的行数,顺序输出

    //如何获取一个字符的ASCII除了查询ASCII表外,可以用Java进行输出
    char c='a'; 
    int i=98;
    System.out.println((
    int)c);
    System.out.println((
    char)i);
    //代码
    import java.util.Scanner;
    
    public class Main{
    
        public static void main(String[] args) {
            Scanner in = new Scanner(System.in);
            int m = in.nextInt(); // 行数
            int n = in.nextInt(); // 列数
            
            //从A作为起点,开始输出 大写A的ASCII码值为65,所有直接用65加某一个数来实现A以后的字母的输出
            
            //首先要输出m行,先来一个for循环到m
            for (int i = 0; i < m; i++) {
                for (int j2 = i; j2 > 0 && i -j2 < n; j2--) {
                    System.out.print((char) (65 + j2));
                }
                for (int j2 = 0; j2 < n - i; j2++) {
                    System.out.print((char) (65 + j2));
                }
                //一行输完换个行,试试
                System.out.println("");
            }
    
        }
    
    }

    java中char对应的ASCII码的转化参考其他博文:

     https://blog.csdn.net/duomoluo/article/details/50769756

     
  • 相关阅读:
    【BZOJ4444】国旗计划
    NOIp模拟赛三十一
    [arc086e]snuke line
    NOIp模拟赛三十
    [agc004f]namori
    [agc004d]salvage robot
    [agc016b]colorful hats
    NOIp模拟赛二十九
    [arc082f]sandglass
    Oracle性能报告--ASH
  • 原文地址:https://www.cnblogs.com/bigorang/p/8681829.html
Copyright © 2011-2022 走看看