蓝桥杯刷题7

news/2024/7/7 19:43:01

目录

1. 字母数

2. 列名

3. 大乘积

4. 最大连通

5. 星期几


1. 字母数

public class Main {
    public static void main(String[] args) {
        int num = 2023;
        while(true) {
            String m=Integer.toString(num,16);
            if(m.matches("^[a-f]+$")){
                System.out.println(num);
                break;
            }
            num++;
        }
    }
}
  • ^ 表示匹配字符串的开始位置。
  • [a-f] 是一个字符集,表示匹配任何一个在其中的字符。这里的 a-f 包含了小写字母a到f。
  • + 代表前面的字符集出现一次或多次,也就是说整个字符串必须由一个或多个连续的a到f之间的字母组成。
  • $ 表示匹配字符串的结束位置。

2. 列名

public class Main {
    public static void main(String[] args) {
        int sum=26+26*26;
        for(char i='A';i<='Z';i++){
          for(char j='A';j<='Z';j++){
            for(char z='A';z<='Z';z++){
              sum++;
              if(sum==2022){
                System.out.print(i);
                System.out.print(j);
                System.out.println(z);
              }
            }
          }
        }
    }
}

3. 大乘积

public class Main {
    public static void main(String[] args) {
        int count = 0;
        int[] nums = {99, 22, 51, 63, 72, 61, 20, 88, 40, 21, 63, 30, 11, 18, 99, 12, 93, 16, 7, 53, 64, 9, 28, 84, 34, 96, 52, 82, 51, 77};
        for (int i=0; i<nums.length; ++i){
          for (int j=i+1; j<nums.length; ++j){{
            if (i != j){
              if (nums[i]*nums[j]>=2022){
                count++;
              }
            }
          }}
        }

        System.out.println(count);
    }
}

4. 最大连通

连通性判断是DFS最常见的应用。连通性判断是图论中的一个简单问题,给定一张图,图由点和边组成,要求找到互相连通的部分。连通性判断有三种实现方法:BFS、DFS、并查集,用DFS最简单方便。
  在竞赛题中,图常常用方格图给出,每个方格可以向上下左右四个方向走。
  DFS判断连通性,步骤如下:
  (1)从任意一个点u开始遍历,标记u已经搜过。一般从第一个点开始。
  (2)DFS搜索u的所有符合连通条件的邻居点。已经搜过的点标记为已经搜过,后面不用再搜。扩展u的邻居点时,应该判断这个邻居点是不是在边界内。
  (3)DFS结束,找到了与u连通的所有点,这是一个连通块。
  (4)不与u连通的、其他没有访问到的点,继续用上述步骤处理,找到所有的连通块。

import java.util.Scanner;
public class Main {
    static int[] dx = {-1, 0, 1, 0};
    static int[] dy = {0, 1, 0, -1};//四个方向
    static char[][] g;
    static int n = 30, m = 60;

    static int dfs(int x, int y) {//当前位于坐标[x,y]
        if (g[x][y] == '0') return 0;
        g[x][y] = '0';//把这个点从1改为0,后面不再搜它
        int cnt = 1;//统计这个连通块的大小
        for (int i = 0; i < 4; i++) { //遍历它的4个邻接
            int nx = x + dx[i], ny = y + dy[i];//一个邻居的坐标
            if (nx < 0 || ny < 0 || nx >= n || ny >= m) continue;//这个邻居是否在边界内
            cnt += dfs(nx, ny);
        }
        return cnt;
    }
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        g = new char[n][m];

        for (int i = 0; i < n; i++){
//g[i] = scanner.nextLine().toCharArray(); 这行代码的用法是将用户从控制台输入的一行文本转化为字符数组,并将其赋值给二维字符数组 g 的第 i 行。
          g[i] = scanner.nextLine().toCharArray();
        }        
        int ans = 0;
        for (int i = 0; i < n; i++) 
            for (int j = 0; j < m; j++) 
                if (g[i][j] == '1') 
                    ans = Math.max(ans, dfs(i, j));
        System.out.println(ans);
    }
}

5. 星期几

import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int w = scan.nextInt();
        int n = scan.nextInt();
        int m = (n+w)%7;
        if(m==0){
          System.out.println(7);
        }else{
          System.out.println(m);
        }
        scan.close();
    }
}

http://lihuaxi.xjx100.cn/news/2088795.html

相关文章

全景解析 Partisia Blockchain:以用户为中心的全新数字经济网络

在区块链世界中&#xff0c;以比特币、以太坊网络为代表的主流区块链奠定了该领域早期的基础&#xff0c;并让去中心化、点对点、公开透明以及不可逆成为了该领域固有的意识形态。事实上&#xff0c;过于透明正在成为区块链规模性采用的一大障碍&#xff0c;我们看到 90% 以上的…

14双体系Java学习之数组

数组 ★小贴士 数组中保存固定数量的值&#xff0c;声明数组时需要制定数组中元素的类型&#xff0c;数组的长度在创建数组时设定。 保存数据的数据结构有很多&#xff0c;Java的标准函数库中就包含了许多复杂的数据结构&#xff0c;比如map、tree和set&#xff0c;以后会讲解的…

【Echarts】曲线图上方显示数字以及自定义值,标题和副标题居中,鼠标上显示信息以及自定义信息

欢迎来到《小5讲堂》 大家好&#xff0c;我是全栈小5。 这是《前端》系列文章&#xff0c;每篇文章将以博主理解的角度展开讲解&#xff0c; 特别是针对知识点的概念进行叙说&#xff0c;大部分文章将会对这些概念进行实际例子验证&#xff0c;以此达到加深对知识点的理解和掌握…

基于PyTorch深度学习实战入门系列-Numpy基础全

Numpy的使用 导入Numpy模块 import numpy as np创建数组&#xff08;一维数组、小数数组、二维数组&#xff09; # 创建一个一维数组 n1 np.array([1, 2, 3]) # 创建一个含有小数的一维数组 n2 np.array([0.1, 0.2, 0.3]) # 创建一个简单的二维数组 n3 np.array([[1, 2], [3…

C语言分支和循环总结

文章目录 概要结构介绍不同结构的语句简单运用小结 概要 C语言中分为三种结构&#xff1a;顺序结构&#xff0c;选择结构&#xff0c;循环结构 结构介绍 顺序结构就是从上到下&#xff0c;从左到右等等&#xff1b;选择结构可以想象是Y字路口就是到了一个地方会有不同的道路…

LeetCode 1768. 交替合并字符串

文章目录 一、题目二、C 题解 一、题目 给你两个字符串 word1 和 word2。请你从 word1 开始&#xff0c;通过交替添加字母来合并字符串。如果一个字符串比另一个字符串长&#xff0c;就将多出来的字母追加到合并后字符串的末尾。 返回 合并后的字符串 。 示例 1&#xff1a; …

C++内存对齐知识点总结

什么是内存对齐 理论上&#xff1a;32位系统&#xff1a;int 4字节&#xff0c;char1字节 现代计算机内存空间都是按照字节划分的。理论上计算机系统对基本类型数据在内存的变量的访问可以从任何地址开始&#xff0c;但是时机的计算机系统对基本类型的数据在内存中存放的位置是…

java学习(Arrays类和System类)

目录 目录 一.Arrays类 二.System常见方法 三、Biglnteger和BigDecimal&#xff08;高精度&#xff09; 1.Biglnter的常用方法 2.BigDecimal常见方法 3.日期类 1)第一代日期类 2&#xff09;第二代日期类 3)第三代日期类 一.Arrays类 Arrays包含了一系 列静态方法&am…