zoukankan      html  css  js  c++  java
  • 蓝桥杯 之 基础练习3:字母图形

    /*
    问题描述
    利用字母可以组成一些美丽的图形,下面给出了一个例子:
    ABCDEFG
    BABCDEF
    CBABCDE
    DCBABCD
    EDCBABC

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

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

    样例输入
    5 7
    样例输出
    ABCDEFG
    BABCDEF
    CBABCDE
    DCBABCD
    EDCBABC

    数据规模与约定
    1 <= n, m <= 26。
    */

    心得:

      一直以来作各种算法题,图形输出题貌似一直都是我的弱项,做这道题的时候也着实费了我好大劲。一开始没有好好注意观察图形的规律,导致做题时很伤脑筋。做这种图形输出题做多了些,就会发现做这类题就得要看图找规律,根据规律来写代码。像这道题的规律,它的第一行是按ABCDEFG..的顺序展开,第一列也是这样。而第i行的第i位后自左向右的字母也是按ABCDEF...展开的(i=1,2...,26),而第i行第i位前自右向左也是按ABCDEF...展开的。根据这个规律就可以写代码了。

      另外,在这道题中,我第一次在蓝桥杯练习系统上提交的代码,是将char二维数组的数组长度取决于我输入的两个数字,我在eclipse运行是可以运行成功的,但是在练习系统上提交代码后是显示运行错误。前几次在刷蓝桥杯练习系统的题目时,涉及到数组问题时也会出现这个问题,几番试验后我便发现,因为题目中有规定数据规模和约定,所以涉及到数组长度时,应该以题目中所给的数据规模与约定为准。

     1 import java.util.Scanner;
     2 public class Main{
     3     public static void main(String[] args){
     4         Scanner sc=new Scanner(System.in);
     5         int n=sc.nextInt();
     6         int m=sc.nextInt();
     7         char str;
     8         //char[][] pattern=new char[n][m];      //会出现运行错误
     9         char[][] pattern=new char[26][26];
    10         int i=0,j=0;
    11         for(i = 0;i < n;i++)  
    12         {  
    13             str = 'A';    
    14             for(j = i;j  < m;j++)        //此处两个循环用来控制存储字符的  
    15             {  
    16                 pattern[i][j] = str++;  
    17             }    
    18             str = 'A';  
    19             for(j = i - 1;j >= 0;j --)  
    20             {  
    21                 pattern[i][j] = ++str;
    22             }
    23         }  
    24       
    25         for(i = 0;i < n;i ++)    //此处用来输出字符数组元素  
    26         {  
    27             for(j = 0;j < m;j ++)  
    28             {  
    29               System.out.print(pattern[i][j]);  
    30             }  
    31           System.out.println("");
    32         }    
    33     }
    34 }
  • 相关阅读:
    实现简易赈灾物资发放登记系统---练习
    数据访问-----ADO.NET 练习2
    数据访问-----ADO.NET 练习1
    面向对象(3)继承
    面向对象(2)
    面向对象(1)
    JavaScript 内容串联 ---Document---四、五和正则表达式。
    JavaScript 内容串联 ---Document
    document--操作相关元素(js简短汇总3)
    js--document对象操作内容(js简短汇总2)
  • 原文地址:https://www.cnblogs.com/beckljm/p/4253545.html
Copyright © 2011-2022 走看看