【蓝桥杯】- 基础练习 字母图形
问题描述 利用字母可以组成一些美丽的图形,下面给出了一个例子: 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(""); } } }