第十一届蓝桥杯省赛JavaC组真题——详细答案对照(完整版)-2

简介: 第十一届蓝桥杯省赛JavaC组真题——详细答案对照(完整版)

D、合并检测

本题总分:10 分


【问题描述】


最近存在A病,最近在 A 国蔓延,为了尽快控制病*,A 国准备给大量民众进病*检测。


然而,用于检测的试剂盒紧缺。


为了解决这一困难,科学家想了一个办法:合并检测。即将从多个人(k个)采集的标本放到同一个试剂盒中进行检测。如果结果为阴性,则说明这 k个人都是阴性,用一个试剂盒完成了 k 个人的检测。如果结果为阳性,则说明至少有一个人为阳性,需要将这 k 个人的样本全部重新独立检测(从理论上看,如果检测前 k 1 个人都是阴性可以推断出第 k 个人是阳性,但是在实际操作中不会利用此推断,而是将 k 个人独立检测),加上最开始的合并检测,一共使用了 k + 1 个试剂盒完成了 k 个人的检测。

A 国估计被测的民众的感染率大概是 1%,呈均匀分布。请问 k 取多少能最节省试剂盒?


【答案提交】


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


题解:

package action;
public class demo {
  public static void main(String[] args) {
    int allPerson = 999;//人数
    int num = 0; //试剂盒个数
    int minx = 9999999; //试剂盒最少个数
    int answer = 0;
    for (int k = 1; k <= allPerson; k++) {
      if (allPerson % k == 0) {
        num = (allPerson / k) + (int) Math.floor(0.01 * allPerson) * k;
      } else {
        num = (allPerson / k) + (int) Math.floor(0.01 * allPerson) * k + 1;
      }
      if (num < minx) {
        minx = num;
        answer = k;
      }
    }
    System.out.println(answer);
  }
}



E、REPEAT 程序

本题总分:15 分

【问题描述】

附件 prog.txt 中是一个用某种语言写的程序。


其中 REPEAT k 表示一个次数为 k 的循环。循环控制的范围由缩进表达,


从次行开始连续的缩进比该行多的(前面的空白更长的)为循环包含的内容。


例如如下片段:


image.png


该片段中从A = A + 4 所在的行到 A = A + 8 所在的行都在第一行的循环两次中。


REPEAT 6: 所在的行到 A = A + 7 所在的行都在 REPEAT 5: 循环中。


A = A + 5 实际总共的循环次数是 2 × 5 × 6 = 60 次。


请问该程序执行完毕之后,A 的值是多少?


【答案提交】


这是一道结果填空题,你只需要算出结果后提交即可。本题的结果为一个


整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

题解:

package action;
public class demo {
  public static void main(String[] args) {
    int A = 0;
    for (int i = 0; i < 2; i++) {
      A += 4;
      for (int j = 0; j < 5; j++) {
        for (int k = 0; k < 6; k++) {
          A += 5;
        }
        A += 7;
      }
      A += 8;
    }
    A += 9;
    System.out.println(A);
  }
}

F、分类计数

本题总分:15 分


【问题描述】


输入一个字符串,请输出这个字符串包含多少个大写字母,多少个小写字母,多少个数字。


【输入格式】


输入一行包含一个字符串。


【输出格式】


输出三行,每行一个整数,分别表示大写字母、小写字母和数字的个数。


【样例输入】


1+a=Aab


【样例输出】


1

3

1


题解:

package action;
import java.util.Scanner;
public class demo {
  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    String str = sc.next();
    char[] ch = str.toCharArray();
    int[] num = new int[3];
    for (int i = 0; i < ch.length; i++) {
      if (ch[i] >= '0' && ch[i] <= '9') {
        num[2]++;
      } else if (ch[i] >= 'a' && ch[i] <= 'z') {
        num[1]++;
      } else if (ch[i] >= 'A' && ch[i] <= 'Z') {
        num[0]++;
      }
    }
    for (int i : num) {
      System.out.println(i);
    }
  }
}

输入【1+a=Aab】

image.png



G、整除序列

【问题描述】


本题总分:15 分


有一个序列,序列的第一个数是 n,后面的每个数是前一个数整除 2,请输


出这个序列中值为正数的项。


【输入格式】


输入一行包含一个整数 n。


【输出格式】


输出一行,包含多个整数,相邻的整数之间用一个空格分隔,表示答案。


【样例输入】


20

【样例输出】


20 10 5 2 1

【评测用例规模与约定】


对于 80% 的评测用例,1 ≤ n ≤ 109。


对于所有评测用例,1 ≤ n ≤ 1018。


题解:


package action;
import java.util.Scanner;
public class demo {
  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    int n = sc.nextInt();
    while (n > 0) {
      System.out.print(n + " ");
      n /= 2;
    }
  }
}

image.png

相关文章
|
4天前
|
机器学习/深度学习 人工智能 测试技术
第十三届蓝桥杯省赛JavaC组真题——详细答案对照(完整版)
第十三届蓝桥杯省赛JavaC组真题——详细答案对照(完整版)
222 0
|
人工智能 测试技术
第十一届蓝桥杯省赛JavaC组真题——详细答案对照(完整版)-3
第十一届蓝桥杯省赛JavaC组真题——详细答案对照(完整版)
139 0
第十一届蓝桥杯省赛JavaC组真题——详细答案对照(完整版)-3
|
数据安全/隐私保护
第十一届蓝桥杯省赛JavaC组真题——详细答案对照(完整版)-1
第十一届蓝桥杯省赛JavaC组真题——详细答案对照(完整版)
74 0
第十一届蓝桥杯省赛JavaC组真题——详细答案对照(完整版)-1
第九届蓝桥杯省赛JavaC组真题——详细答案对照(完整版)-3
第九届蓝桥杯省赛JavaC组真题——详细答案对照(完整版)
175 0
第九届蓝桥杯省赛JavaC组真题——详细答案对照(完整版)-3
第九届蓝桥杯省赛JavaC组真题——详细答案对照(完整版)-2
第九届蓝桥杯省赛JavaC组真题——详细答案对照(完整版)
65 0
第九届蓝桥杯省赛JavaC组真题——详细答案对照(完整版)-2
|
算法
第九届蓝桥杯省赛JavaC组真题——详细答案对照(完整版)-1
第九届蓝桥杯省赛JavaC组真题——详细答案对照(完整版)
1749 0
第九届蓝桥杯省赛JavaC组真题——详细答案对照(完整版)-1
|
人工智能 数据安全/隐私保护
第七届蓝桥杯省赛JavaC组真题——详细答案对照(完整版)-1
第七届蓝桥杯省赛JavaC组真题——详细答案对照(完整版)
125 0
|
人工智能 C++
第七届蓝桥杯省赛JavaC组真题——详细答案对照(完整版)-2
第七届蓝桥杯省赛JavaC组真题——详细答案对照(完整版)
105 0
|
存储
第八届蓝桥杯省赛JavaC组真题——详细答案对照(完整版)-1
第八届蓝桥杯省赛JavaC组真题——详细答案对照(完整版)
48 0
第八届蓝桥杯省赛JavaC组真题——详细答案对照(完整版)-2
第八届蓝桥杯省赛JavaC组真题——详细答案对照(完整版)
118 0