美文网首页
打印字符图形(蓝桥杯基础题 Java版)

打印字符图形(蓝桥杯基础题 Java版)

作者: Moonsmile | 来源:发表于2017-03-02 11:59 被阅读0次

问题描述
利用字母可以组成一些美丽的图形,下面给出了一个例子:
ABCDEFG
BABCDEF
CBABCDE
DCBABCD
EDCBABC
这是一个5行7列的图形,请找出这个图形的规律,并输出一个n行m列的图形。
输入格式
输入一行,包含两个整数n和m,分别表示你要输出的图形的行数的列数。
输出格式
输出n行,每个m个字符,为你的图形。
样例输入
5 7
样例输出
ABCDEFG
BABCDEF
CBABCDE
DCBABCD
EDCBABC
数据规模与约定
1 <= n, m <= 26。



import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;


/**
 * Created by junyi.pc on 2017/1/25.
 */

public class Main {


    public static void main(java.lang.String[] args){


        System.out.println("ABCDEFG\n" +
                "BABCDEF\n" +
                "CBABCDE\n" +
                "DCBABCD\n" +
                "EDCBABC");
              //关键在于你得发现相邻两行对应的字符总是差一,比如第一行第一个是A,所以第二行第一个就是B

        BufferedReader Reader=new BufferedReader(new InputStreamReader(System.in));
        try {
            String s=Reader.readLine();
            String st[]=s.split(" ");
            int time=0;
            int timeMax=Integer.parseInt(st[0]);
            int len=Integer.parseInt(st[1]);
            char []c =new char[len];
            for(int i=0;i<c.length;i++){
               c[i]=(char)('B'+i);
                //初始化c[]为BCDEFGH
               }
            for(int k=0;k<timeMax;k++){ //timeMax为5行
                for(int j=0;j<c.length;j++){//length为7,表示7个字符

                    if(j<time){
                        c[j]=(char)(c[j]+1);//在这种情况下,左边的所有字符都比上一行对应的字符要大一
                    }
                    if(j>=time){
                        c[j]=(char)(c[j]-1);//在这种情况下,右边的所有字符都比上一行对应的字符要小一
                    }

                }
                time++;
                System.out.println(c);

            }

        } catch (IOException e) {
            e.printStackTrace();
        }


    }
}

相关文章

网友评论

      本文标题:打印字符图形(蓝桥杯基础题 Java版)

      本文链接:https://www.haomeiwen.com/subject/zomhgttx.html