第十二届蓝桥杯决赛JavaC组真题——详细答案对照(全网唯一:异或变换100%数据)-1

简介: 第十二届蓝桥杯决赛JavaC组真题——详细答案对照(全网唯一:异或变换100%数据)

A、整数范围

本题总分:5 分


问题描述


 用 8 位二进制(一个字节)来表示一个非负整数,表示的最小值是 0 ,则一般能表示的最大值是多少?


答案提交


 这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。


package action;
public class demo {
  public static void main(String[] args) {
  System.out.println(Integer.parseInt("11111111", 2));
  }
}


B 带宽

本题总分:5 分


问题描述


 小蓝家的网络带宽是 200 Mbps,请问,使用小蓝家的网络理论上每秒钟最多可以从网上下载多少 MB 的内容。


答案提交


 这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。


package action;
public class demo {
  public static void main(String[] args) {
  System.out.println(200/8);
  }
}


C、纯质数

本题总分:10 分


问题描述


 如果一个正整数只有 1和它本身两个约数,则称为一个质数(又称素数)。

 前几个质数是:2,3,5,7,11,13,17,19,23,29,31,37,⋅⋅⋅ 。

 如果一个质数的所有十进制数位都是质数,我们称它为纯质数。例如:2,3,5,7,23,37 都是纯质数,而 11,13,17,19,29,31 不是纯质数。当然1,4,35 也不是纯质数。

 请问,在 1 到 20210605 中,有多少个纯质数?


答案提交


 这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。


package action;
public class demo {
  public static void main(String[] args) {
  long out = 0;// 记录总个数
  for (int i = 1; i <= 20210605; i++) {
    if ((i + "").indexOf("1") == -1 && (i + "").indexOf("4") == -1 && (i + "").indexOf("6") == -1 && // 首先判断当前数字中不能包含非质数数字
      (i + "").indexOf("8") == -1 && (i + "").indexOf("9") == -1 && (i + "").indexOf("0") == -1) {
    if (f(i)) { // 判断是否是质数
      out++;
      // System.out.println(i);
    }
    }
    if (i % 10000 == 0) {
    System.out.println(i);// 观察程序运行进度
    }
  }
  System.out.println(out);// 最后结果
  }
  // 判断是否是质数
  private static boolean f(int num) {
  for (int i = 2; i < num / 2; i++) {
    if (num % i == 0) {
    return false;
    }
  }
  return true;
  }
}

D 完全日期

本题总分:10 分


问题描述


 如果一个日期中年月日的各位数字之和是完全平方数,则称为一个完全日期。

 例如:2021 年 6 月 5 日的各位数字之和为 2+0+2+1+6+5=16,而 16 是一个完全平方数,它是 4 的平方。所以 2021 年 6 月 5 日是一个完全日期。

 例如:2021 年 6 月 23 日的各位数字之和为 2+0+2+1+6+2+3=16,是一个完全平方数。所以 2021 年 6 月 23 日也是一个完全日期。

 请问,从 2001 年 1 月 1 日到 2021 年 12 月 31 日中,一共有多少个完全日期?


答案提交


 这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。


package action;
import java.util.Calendar;
public class demo {
  public static void main(String[] args) {
  long out = 0;// 记录总个数
  Calendar n = Calendar.getInstance();
  n.clear();
  for (int i = 2001; i < 2022; i++) {// 年份
    for (int j = 1; j <= 12; j++) {// 月份
    n.set(i, j - 1, 1);
    int max = n.getActualMaximum(Calendar.DAY_OF_MONTH);// 获取当前月份最大天数
    for (int k = 1; k <= max; k++) {// 日
      // System.out.println(i+""+j+""+k);
      if (f(Integer.parseInt(i + "" + j + "" + k))) {
      out++;
      }
    }
    }
  }
  System.out.println(out);// 最后结果
  }
  // 判断是否是完全日期
  private static boolean f(int num) {
  int n = 0;
  while (num > 0) {
    n += num % 10;
    num /= 10;
  }
  if (n == 4 || n == 9 || n == 16 || n == 25) {// 满足当前范围内日期的完全平方数只有4 9 16 25无需判断其余数字
    return true;
  }
  return false;
  }
}


E、最小权值

本题总分:15 分


问题描述


 对于一棵有根二叉树 T ,小蓝定义这棵树中结点的权值 W(T) 如下:

 空子树的权值为 0 。

 如果一个结点 v 有左子树 L , 右子树 R ,分别有 C(L) 和 C(R) 个结点,则 W(v)=1+2W(L)+3W(R)+(C(L))^2C(R)。(^2代表平方)

 树的权值定义为树的根结点的权值。

 小蓝想知道,对于一棵有 2021 个结点的二叉树,树的权值最小可能是多少?


答案提交


 这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。


package action;
public class demo {
  static int n = 2021;
  public static void main(String[] args) {
  f();
  }
  public static void f() {
  long[] dp = new long[n + 1];
  dp[1] = 1;
  for (int i = 2; i <= n; ++i) {
    long min = Long.MAX_VALUE;
    for (int l = 0; l <= i - 1; ++l) {
    int r = i - l - 1;
    long p = 1 + 2 * dp[l] + 3 * dp[r] + l * l * r;
    min = Math.min(min, p);
    }
    dp[i] = min;
  }
  System.out.println(dp[n]);
  }
}

image.png

相关文章
|
2月前
第十四届蓝桥杯集训——JavaC组第十三篇——for循环
第十四届蓝桥杯集训——JavaC组第十三篇——for循环
44 0
|
2月前
|
算法
第十四届蓝桥杯集训——JavaC组第十二篇——while循环(循环四要素)
第十四届蓝桥杯集训——JavaC组第十二篇——while循环(循环四要素)
49 0
|
2月前
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-439 算法训练 简单字符变换
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-439 算法训练 简单字符变换
46 1
|
2月前
|
网络安全 数据安全/隐私保护 计算机视觉
2024蓝桥杯网络安全-图片隐写-缺失的数据(0基础也能学会-含代码解释)
2024蓝桥杯网络安全-图片隐写-缺失的数据(0基础也能学会-含代码解释)
|
2月前
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-试题 基础练习 数列排序(四种语言对照)
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-试题 基础练习 数列排序(四种语言对照)
31 0
|
2月前
|
Java C语言
第十四届蓝桥杯集训——JavaC组第十四篇——嵌套循环
第十四届蓝桥杯集训——JavaC组第十四篇——嵌套循环
41 0
|
2月前
|
C语言
第十四届蓝桥杯集训——JavaC组第十一篇——switch
第十四届蓝桥杯集训——JavaC组第十一篇——switch
40 0
|
2月前
第十四届蓝桥杯集训——JavaC组第十篇——分支语句
第十四届蓝桥杯集训——JavaC组第十篇——分支语句
39 0
|
2月前
|
算法
第十四届蓝桥杯集训——JavaC组第九篇——三元运算符
第十四届蓝桥杯集训——JavaC组第九篇——三元运算符
36 0
|
2月前
|
人工智能 算法 Java
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1005 数字游戏
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1005 数字游戏
71 0