【蓝桥杯日记】复盘篇一:深入浅出顺序结构

前言

  本期是一篇关于顺序结构的题目的复盘,通过复盘基础知识,进而把基础知识学习牢固!通过例题而进行复习基础知识。

【蓝桥杯日记】复盘篇一:深入浅出顺序结构_第1张图片目录

前言

1.字符三角形

 分析:

知识点:

代码如下

2. 字母转换

题目分析:

知识点:

代码如下 

3. 再分肥宅水

题目分析:

知识点:

代码如下 

4. 数字反转

题目分析:

知识点:

代码如下 

总结


1.字符三角形

题目描述

给定一个字符,用它构造一个底边长 5 个字符,高 3个字符的等腰字符三角形。

输入格式

输入只有一行,包含一个字符。

输出格式

该字符构成的等腰三角形,底边长 5 个字符,高 3 个字符。

输入输出样例

输入 #

*

输出 #1复制

  *
 ***
*****

说明/提示

对于 100%100% 的数据,输入的字符是 ASCII 中的可见字符。

 分析:
  1. 根据题目的描述可以得知,本题目主要考察的是关于循环的问题,只需要输入制定字符,然后输入的3行5列的等腰三角形这个是固定的。
  2. 这里需要注意的是Scanner扫描器没有获取char类型的方法,可以使用Scanner.next()进行获取字符串,然后通过String类下的CharAt方法进行截取或则subString()。

  3. 第一行是一个字符,第二行是三个,第三行是五个可以找到规律2*i(i是从1开始)-1。

知识点:

CharAt()函数进行截取字符串。

char charAt(int index)

返回char指定索引处的值。 指数范围为0length() - 1该序列的第一个char值在索引0 ,下一个索引为1 ,依此类推,与数组索引一样。

代码如下
        Scanner sc = new Scanner(System.in);
//        1.这里需要注意的是Scanner扫描器没有获取char类型的方法,
//        可以使用Scanner.next()进行获取字符串, 
//        然后通过String类下的CharAt方法进行截取或则subString()
        char s=sc.next().charAt(0);
//        
        for (int i = 0; i < 3; i++) {
//            输出空格
            for (int j = 0; j <3-i-1; j++)
                System.out.print(" ");
//          负责输出指定字符串
            for (int k=0;k<(i+1)*2-1;k++){
                System.out.print(s);
            }
//            整体换行
            System.out.println();
        }

2. 字母转换

题目描述

输入一个小写字母,输出其对应的大写字母。例如输入 q[回车] 时,会输出 Q。

输入格式

输出格式

输入

输入 #1

q

输出样例

输出 #1

Q
题目分析:
  1. 本题目主要考察的是大小写字母的ASCII码,大写字母A的ascii码为65,而小写字母a的acsii码为97,由此我们可以确定大小写字母之间的ascii码之间相差32。
  2. 可以使用String类的toUpperCase()方法将小写字母转换为大写字母。
知识点:

toUpperCase()方法

【蓝桥杯日记】复盘篇一:深入浅出顺序结构_第2张图片

代码如下 
 static void fun(){
        Scanner sc=new Scanner(System.in);
        String str=sc.next();
        System.out.println(str.toUpperCase());
    }

3. 再分肥宅水

题目描述

现在有 t 毫升肥宅快乐水,要均分给 n 名同学。每名同学需要 2 个杯子。现在想知道每名同学可以获得多少毫升饮料(严格精确到小数点后 3 位),以及一共需要多少个杯子。

输入格式

输入一个实数 t 和一个正整数 n,使用空格隔开。

输出格式

输出两行。

第一行输出一个三位小数,表示可以获得多少毫升饮料。第二行输出一个正整数,表示一共需要多少个杯子。

输入输出样例

输入 #1

500.0 
3

输出 #1

166.667
6

说明/提示

对于所有数据,0≤t≤100000≤t≤10000 且小数点后不超过 3 位,1≤t≤10001≤n≤1000。

题目分析:
  1. 先把快乐肥宅水分给n个学生,及使用总量除以学生的个数。
  2. 每个学生两个杯子,则n个学生n*2个杯子。
知识点:

常用保留小数点位数的方法:

  1.使用String.format()字符串格式输出

format("输出格式",数值),"%.保留的小数位数f",按照四舍五入进行保留小数位数。

  2.使用数学函数Math.round() 四舍五入

        double d = 12.344345; 
        //保留两位小数
        long num = Math.round(d * 100);
        System.out.println(num / 100.0);

 3.使用BigDecimal类,可以进行复杂的保留小数位数,进行高精度运算时常使用。

 BigDecimal bd=new BigDecimal( 12.344345);
 System.out.println(bd.setScale(2,BigDecimal.ROUND_DOWN));

  使用BigDecimal类中的setScale()函数设置需要保留的小数位数和保留小数位数的格式。我们上边是使用BigDecimal中的静态量,ROUND_DOWN.可以替换为以下的内容。

常用:

个人认为:四舍五入

ROUND_UP:舍入模式从零开始。 始终在非零丢弃分数之前增加数字。

个人认为:直接截断
ROUND_DOWN:舍入模式向零舍入。 不要在丢弃的分数之前递增数字(即截断)。

  4.DecimalFormat类

                        

//        构造方法设置格式
DecimalFormat df=new DecimalFormat("#.00");
        String str=df.format(12.345345);
        System.out.println(str);

#.00:#表示一个数字,0显示为缺省(即空字符),.就表示他本来的意思,0表示一个数字,00表示两个数字。

代码如下 
Scanner sc=new Scanner(System.in);
        double t=sc.nextDouble();
        int n=sc.nextInt();
//         String.format ("%.1f", num)
        System.out.println(String.format("%.3f",t/n));
        System.out.println(2*n);

4. 数字反转

题目描述

输入一个不小于 100 且小于 1000,同时包括小数点后一位的一个浮点数,例如 123.4 ,要求把这个数字翻转过来,变成 4.321 并输出。

输入格式

一行一个浮点数

输出格式

一行一个浮点数

输入输出样例

输入 #1

123.4

输出 #1

4.321
题目分析:
  1. 对数值进行翻转,把数值转换为字符串使用StringBuild类中的reverse()函数进行对字符串进行翻转
知识点:

1.String类中的方法修改时不会修改本身,除非再次对String类进行赋值,而StringBuilderStringBuffer类对类使用方法时会自动修改原来的类。

代码如下 
 Scanner sc = new Scanner(System.in);
        double n= sc.nextDouble();
        String str=String.valueOf(n);
        System.out.println(new StringBuilder(str).reverse());

总结

  通过几道简单的例题,通过对以下内容的复习:

  1. for循环的复习和控制空格字符的输出。
  2. 可以了解ascii码之间的转换规律。
  3. 牢牢记住保留指定位数的小数。
  4. reverse()实现对字符串的倒置。

你可能感兴趣的:(蓝桥杯学习日记(java),蓝桥杯,职场和发展)