首页 > 其他分享 >蓝桥杯基本操作和运算

蓝桥杯基本操作和运算

时间:2024-10-22 12:46:38浏览次数:8  
标签:这个 运算 读取 int 蓝桥 基本操作 进行 我们 String

文章目录


蓝桥杯基本操作和运算

10-22号正式开始准备蓝桥杯的比赛,准备参加这个大学B组的Java的赛项

1.基本运算

首先就是基本的输入输出:

  • system.out.print();-----进行不换行的输出
  • system.out.println();-----进行换行的输出(这个同样也是我们的IDEA里面的默认输出的方式,最常使用)
  • system.out.printf();--------进行格式化的输出,下面会有这个对应的题目进行说明

对于输入,我们使用的是Scanner进行的;

  • Scanner in = new Scanner(System.in);
  • int a=in.nextInt();-----读取到一般的整形的数据
  • double b=in.nextDouble();----读取到double类型的数据
  • long c = in.nextLong();—最不经常使用,如果读取的整形的数值比较大,可能会用到这个;
  • String str=in.next();----------读取字符的时候到了空位置就会停止读取
  • String str2=in.nextLine();--------一次就会读取一整行的操作,不会遇到空格就停止

下面的这个就是需要我们对于这个温度进行转换:我们读取的是一个整形的数据,这个时候乘上9/5的时候需要进行转换,因为如果直接写这个就会是除法操作,但是我们加上0之后,一个数据变成小数,这个进行的就是小数运算;

image-20241022091036408

下面的这个是使用我们的printf进行这个格式化输出的问题:我们的这个是需要在前面补上0(如果这个位数不够的情况下),因此我们使用这个printf进行格式化的输出,%02d:%02d就是进行这个时间的格式化输出;

最后的这个计算,因为我们是使用的这个nextInt进行读取的,因此这个时候需要进行转换,强制类型转换为这个double的,当然如果我们直接使用这个nextDouble进行读取,就不需要进行强制类型转换;

image-20241022091421677

2.循环–进制转换/最大公约数

2.1进制转换

下面的这个就是进制之间的转换:下面的这个是9进制转换为10进制的情况;

我们需要定义一个sum用来存储每一次计算之后的这个数据,最后我们是把这个sum进行打印输出即可;

这个数据是2022,我们要把这个(2022)这个9进制的转换为10进制的数据,这个时候需要对于这个数据的最低位取出来,分别进行这个90—91----9^2操作以此类推下去,直到这个剩下余数小于0才停止;

image-20241022094749234

2.2求解最大公约数

求解最大公约数:我们首先需要使用这个nextInt方法得到两个输入的数据,接着求的两个数据里面的最小值—我们可以使用三目运算符求解最小值,也可以使用这个math里面的这个min方法求解这个最小值,其中这个三目运算符我们自己也是可以封装出来一个方法;

如果这个输入的数据除以i都是没有余数的,这个时候我们就把这个数据进行输出即可(这个地方我们可以使用for循环进行判断,因为我们知道这个最大公约数一定会比这个输入的两个数据里面的最小值还要更小,因此我们可以从这个两个数据里面的最小值作为初始的数值,然后从这个min值开始不断地减减,一直到1位置,如果两个数据除以这个i都是0,就证明这个就是公约数,而且我们一旦遇到一个满足条件的,我们就会使用这个break关键字对于这个过程进行终止,这时候得到的这个公约数就是最大的公约数);

image-20241022095700488

3.数组与字符串

这个里面主要是对于这个数组的创建,数组的使用以及这个字符串的相关操作:求解字符串的长度,求解这个字符串的子串,对于这个字符串进行分割操作,以及计算这个对应字符的下标,全部转成大写等等一系列的操作;

我们下面的两个案例就是冒泡排序;

下面的这个代码可以划分为四个步骤:

1.初始化的部分:就是定义数组,初始化这个数组的大小;

2.赋值:对于这个数组里面的每一个元素,我们都需要使用这个nextInt方法进行赋值操作;

3.排序:使用冒泡的方法进行排序,这个时候如果需要的话,需要进行交换位置的操作;

4.使用for循环,对于这个冒泡排序之后的结果进行打印输出;

image-20241022104559395

4.常用的API

这个常用的API主要是我们的Math和这个Integer里面的一些方法:

parseInt(String s,int radix);

例如下面的这个情况:

String str1="1010";
int num1=Integer.parseInt(str1,2);
//这个就是把我们的二进制的这个字符串str1转换为我们的十进制的整数,并且把这个转换之后的结果进行打印输出

String str2="ff";
int num2=Integer.parseInt(str2,16);
//这个就是把我们的这个16进制的字符串ff进行转换为十进制的整数并且打印输出;

toString方法—把这个整数转换为对应的进制的字符串进行表示:

int num=255;
String str1=Integer.toString(num,2);//转换为二进制的字符串
String str2=Integer.toString(num,8);//转换为八进制的字符串
String str3=Integer.toString(num,10);//转换为16进制的字符串

其他的就是这个Math里面的相关的函数,例如这个abs,min,pow之类的,这个地方就不演示了;

5.快速读写模版

快速读写就是我们输入的数据很多,如果我们还是使用这个scanner进行读取的操作,这个时候的效率就会降低,因此我们自己设计了一套快速读写的方法,提高多组输入的时候的读写效率;

import java.util.*;
import java.io.*;
//这个方法的效率高主要是因为原来的scanner和这个system需要到这个IO设备上面的文件上面里面去进行数据的读取,但是我们的这个是创建一个缓冲区,读取的时候一次性把这个文件里面的内容放到我们的缓冲区里面去,然后每一次进行裁剪数据,直接从缓冲区里面对于这个数据进行读取,因此这个可以提高效率;
//这个新定义的这个类的里面对应的方法和我们原来使用的方法的名字和功能都是一样的;

public class Main
{
    //PrintWriter就是快速写的操作
    public static PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(System.out)));
    public static Read in = new Read();

    public static void main(String[] args) throws IOException
    {
        // 写代码(下面的这个仅仅是一个案例,具体情况需要修改)
        int n=in.nextInt();
        System.out.println(n);
        int[] arr=new int[n];
        for(int i=0;i<n;i++){
            arr[i]=in.nextInt();
        }

        for(int i=0;i<n;i++){
            out.print(arr[i]);
            if(i<n-1){
              out.print(" ");
            }
        }
        
        out.close();
    }
}


class Read // 自定义快速读入
{
    StringTokenizer st = new StringTokenizer("");
    //BufferedReader就是把这个IO设备里面的数据搞到我们的缓冲区里面去,然后进行裁剪
    BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
    String next() throws IOException
    {
        while(!st.hasMoreTokens())
        {
            //bf.readLine()就是从缓冲区里面取出来一行数据,进行裁剪
            //StringTokenizer就是把这个缓冲区里面的字符串转换为我们想要的数据类型
            st = new StringTokenizer(bf.readLine());
            //加上while循环是为了解决多行输入的问题的
        }
        return st.nextToken();
    }

    String nextLine() throws IOException
    {
        return bf.readLine();
    }

    int nextInt() throws IOException
    {
        return Integer.parseInt(next());
    }

    long nextLong() throws IOException
    {
        return Long.parseLong(next());
    }

    double nextDouble() throws IOException
    {
        return Double.parseDouble(next());
    }
}

标签:这个,运算,读取,int,蓝桥,基本操作,进行,我们,String
From: https://blog.csdn.net/binhyun/article/details/143151476

相关文章

  • 位运算笔记
    位运算笔记对二进制数进行直接操作:基础操作:例:a=00001101;b=00110101;与:a&b==00000101;//当两个数的第i位都为1时,a&b的第i位才为1或:a|b==00111101;/*当两个数的第i位都为0时,a|b的第i位才为0或者说两个数的第i位其中至少有一个为1,对应的a|b的第i位就为1*/......
  • 【位运算】——揭秘位运算:高效解题的关键技巧
    文章目录常见的运算总结五道基础位运算相关题目位1的个数比特位计数汉明距离只出现一次的数字——基础使用只出现一次的数字|||——这题是最后一题的简单版本面试题01.01.判定字符是否唯一丢失的数字只出现一次的数字||面试题17.19.消失的两个数字总体总结:常见的运算......
  • mongodb 查询条件,查询逻辑对照表,逻辑运算符,正则表达式匹配查询,排序,分页/巧分页,更新操
    mongodb查询条件,查询逻辑对照表,逻辑运算符,正则表达式匹配查询,排序,分页/巧分页,更新操作符,更新单个/多个文档,删除文档,批量插入,$type操作符,内嵌文档和数组查找修改1.条件查询SQLMQLa=1{a:1}a<>1{a:{$ne:1}}a>1{a:{$gt:1}}a>=1{a:{$gte:1}}a<1{a:{$lt......
  • 位运算及其应用
    本文主要介绍C语言中的位运算及其应用。一、位运算符C语言提供6种位运算,它们是“按位取反(~)”、“左移(<<)”、“右移(>>)”、“按位与(&)”、“按位异或(^)”、“按位或(|)”。总结如下表所示,位运算符运算符含义优先级~按位取反1(高)<<左移2>>右移2&按位与3^按位异或4|按位或5(低)......
  • 文件的基本操作
    创建文件删除文件在这里我们可以看到,删除文件这个系统调用也是需要用文件名去目录表中寻找文件的打开文件当用户对一个文件实施多次读/写等操作时,每次都要从检索目录开始.为了避免多次重复地检索目录,大多数操作系统要求,当用户首次对某文件发出操作请求时,须先利用系统调用......
  • 重载运算符、析构函数
    重载运算符、析构函数1.重载运算符2个对象进行==比较,重载==运算符说白了,就是,写一个成员函数,这个成员函数名"operator==",这个成员函数体里边写一些比较逻辑//定义Time&operator=(constTime&tmpobj)//实现Time&Time::operator=(constTime&tmpobj){cout......
  • Python 赋值与运算符和连接符
    a=input("请输入一个数a")b=input("请输入一个数b")a=float(a)          #将数据转换为浮点型b=float(b)          #将数据转换为浮点型c=a+b#定义c=a+bprint("输入的数为c",c)ifa<b:c=belse:c=aprint("......
  • 【蓝桥杯】C++ 第20场 小白入门赛
    一、四个亲戚题目四个亲戚 题目分析字面意思:Daiyu+‘kind’代码#include<iostream>usingnamespacestd;intmain(){cout<<"Daiyu'kind'";return0;}二、黛玉泡茶题目黛玉泡茶 题目分析1.我们可以c2.然后c3.计算c,如果不能,整除后的答案还要加1 ......
  • 逗号运算符的定义与使用
    文章目录前言一、定义与语法二、使用场景三、注意事项前言在C语言中,逗号运算符(,)是一种低优先级的二元运算符,用于在一个表达式中依次执行多个操作。它的主要作用是允许在一个表达式中包含多个子表达式,并按照从左到右的顺序依次计算这些子表达式。逗号运算符的结果是......
  • 四,Java运算符详细分类及使用方法介绍
    Java编程基础:全面掌握运算符在Java编程中,运算符是用于执行程序代码运算的符号。它们可以对变量和值执行各种操作,如算术运算、比较、逻辑判断等。本文将详细探讨Java中的各种运算符,包括算术运算符、关系运算符、赋值运算符、逻辑运算符、位运算符和三目运算符,并提供相应的代码示例......