第十一届蓝桥杯省赛第一场原题

您所在的位置:网站首页 pythona除以b的余数 第十一届蓝桥杯省赛第一场原题

第十一届蓝桥杯省赛第一场原题

2023-11-12 06:08| 来源: 网络整理| 查看: 265

试题 A: 指数计算

本题总分:5 分 【问题描述】 7 月 1 日是建党日,从 1921 年到 2020 年,中国共产党已经带领中国人民 走过了 99 年。 请计算:7 ^ 2020 mod 1921,其中 A mod B 表示 A 除以 B 的余数。 【答案提交】 这是一道结果填空题,你只需要算出结果后提交即可。本题的结果为一个 整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

解题思路: 先求出 7 的 2020 次方肯定是很大的数(废话),再用该数除以 1921 取余数。 方法一: 打开电脑上的 计算器-菜单-选择(科学)- 输入 7 ^ 2020 mod 1921 = 使用计算器计算 7 ^ 2020 Mod 1921 方法二: 参考群里的某位巨佬

import java.math.BigInteger; public class Main { public static void main(String[] args) { BigInteger a = new BigInteger("7"); BigInteger b = new BigInteger("1921"); BigInteger c = a.pow(2020); System.out.println(c.remainder(b)); } }

答案:480

试题 B: 解密

本题总分:5 分 【问题描述】 小明设计了一种文章加密的方法:对于每个字母 c,将它变成某个另外的 字符 Tc。下表给出了字符变换的规则: 试题 B: 解密_字典 例如,将字符串 YeRi 加密可得字符串 EaFn。 小明有一个随机的字符串,加密后为 EaFnjISplhFviDhwFbEjRjfIBBkRyY (由 30 个大小写英文字母组成,不包含换行符),请问原字符串是多少? (如果你把以上字符串和表格复制到文本文件中,请务必检查复制的内容 是否与文档中的一致。在试题目录下有一个文件 str.txt,第一行为上面的字符 串,后面 52 行依次为表格中的内容。) 【答案提交】 这是一道结果填空题,你只需要算出结果后提交即可。本题的结果为一个 只包含 30 个大小写英文字母的字符串,在提交答案时只填写这个字符串,填写 多余的内容将无法得分

解题思路: 先取出当前字符,在加密后的字符中找到其位置,再通过位置取出原字符。

public class 试题B_解密 { public static void main(String[] args) { String str = "EaFnjISplhFviDhwFbEjRjfIBBkRyY"; // 加密后的字符 char [] arr = str.toCharArray(); String s1 = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; // 原字符 String s2 = "yxmdacikntjhqlgoufszpwbrevYXMDACIKNTJHQLGOUFSZPWBREV"; // 加密后的字符 String s3=""; // 解密后的字符 for(int i = 0; i public static void main(String[] args) { int t = 10000; int p = 600; int x = 300; int count = 0; while(t > 0){ count++; if(count % 2 != 0){ t -= p; }else{ t += x; } System.out.println("第:" + count * 60 + " 秒,体力: " + t); } System.out.println((count - 1) * 60 + (400 / (600 / 60))); } }

答案:3880

试题 D: 合并检测

本题总分:10 分 【问题描述】 新冠疫情由新冠病毒引起,最近在 A 国蔓延,为了尽快控制疫情,A 国准 备给大量民众进病毒核酸检测。 然而,用于检测的试剂盒紧缺。 为了解决这一困难,科学家想了一个办法:合并检测。即将从多个人(k 个)采集的标本放到同一个试剂盒中进行检测。如果结果为阴性,则说明这 k 个人都是阴性,用一个试剂盒完成了 k 个人的检测。如果结果为阳性,则说明 至少有一个人为阳性,需要将这 k 个人的样本全部重新独立检测(从理论上看, 如果检测前 k 1 个人都是阴性可以推断出第 k 个人是阳性,但是在实际操作中 不会利用此推断,而是将 k 个人独立检测),加上最开始的合并检测,一共使用 了 k + 1 个试剂盒完成了 k 个人的检测。 A 国估计被测的民众的感染率大概是 1%,呈均匀分布。请问 k 取多少能 最节省试剂盒? 【答案提交】 这是一道结果填空题,你只需要算出结果后提交即可。本题的结果为一个 整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

该题博主不会,求巨佬支招!

试题 E:REPEAT 程序

本题总分:15 分 【问题描述】 附件 prog.txt 中是一个用某种语言写的程序。 下载地址 :附件 prog.txt 提取码:hel2 无法下载或失效请留言 其中 REPEAT k 表示一个次数为 k 的循环。循环控制的范围由缩进表达, 从次行开始连续的缩进比该行多的(前面的空白更长的)为循环包含的内容。 例如如下片段:

REPEAT 2: A = A + 4 REPEAT 5: REPEAT 6: A = A + 5 A = A + 7 A = A + 8 A = A + 9

A = A + 4 所在的行到 A = A + 8 所在的行都在第一行的 循环两次中。 REPEAT 6: 所在的行到 A = A + 7 所在的行都在 REPEAT 5: 循环中。 A = A + 5 实际总共的循环次数是 2 × 5 × 6 = 60 次。 请问该程序执行完毕之后,A 的值是多少? 【答案提交】 这是一道结果填空题,你只需要算出结果后提交即可。本题的结果为一个 整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

该题博主不会,求巨佬支招!

试题 F: 分类计数

时间限制: 1.0s 内存限制: 512.0MB 本题总分:15 分 【问题描述】 输入一个字符串,请输出这个字符串包含多少个大写字母,多少个小写字 母,多少个数字。 【输入格式】 输入一行包含一个字符串。 【输出格式】 输出三行,每行一个整数,分别表示大写字母、小写字母和数字的个数。 【样例输入】 1+a=Aab 【样例输出】 131 【评测用例规模与约定】 对于所有评测用例,字符串由可见字符组成,长度不超过 100。

解题思路: 使用 String 接收字符串后用 String.toCharArray() 方法将该字符串转为 char 类型数组,遍历数组判断元素即可。

import java.util.Scanner; public class 试题F_分类计数{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); String s = sc.next(); char []arr = s.toCharArray(); int a = 0, b = 0, c = 0; // 分别代表 大写字母数、小写字母数、数字数。 for(int i = 0; i public static void main(String[] args){ Scanner sc = new Scanner(System.in); int n = sc.nextInt(); while(n >= 1){ System.out.print(n + " "); n /= 2; } } } 试题 H: 走方格

时间限制: 1.0s 内存限制: 512.0MB 本题总分:20 分 【问题描述】 在平面上有一些二维的点阵。 这些点的编号就像二维数组的编号一样,从上到下依次为第 1 至第 n 行, 从左到右依次为第 1 至第 m 列,每一个点可以用行号和列号来表示。 现在有个人站在第 1 行第 1 列,要走到第 n 行第 m 列。只能向右或者向下 走。 注意,如果行号和列数都是偶数,不能走入这一格中。 问有多少种方案。 【输入格式】 输入一行包含两个整数 n, m。 【输出格式】 输出一个整数,表示答案。 【样例输入】 3 4 【样例输出】 2 【样例输入】 6 6 【样例输出】 0 【评测用例规模与约定】 对于所有评测用例,1 ≤ n ≤ 30, 1 ≤ m ≤ 30。

解题思路: 首先在类中声明变量 n、m、count(方案),接收n、m 的值,调用递归 f(1,1) 先判断是否已经到达 n,m点,到达时 count++ 并返回;因为只能向右或向下走,所以需要判断 n1 > n 即当前所在行是否大于要到的行,并判断 m1 > m 即当前所在列是否大于要到的列,大于n或m时则无论如何也无法到达n,m点,固返回;新建arr二维数组,在{0,1}即向右走,{1,0}即向下走;遍历该数组,在数组中声明 x1、y1 下一步的坐标点,判断是否均为偶数,如果是则continue进入下一次循环,如不是则进入递归,循环执行结束后,最后输出 count 即可

参考代码:

import java.util.Scanner; public class 试题H_走方格{ static int n, m, count = 0; public static void main(String[] args){ Scanner sc = new Scanner(System.in); n = sc.nextInt(); m = sc.nextInt(); f(1,1); System.out.println(count); } private static void f(int n1, int m1){ if(n1 == n && m1 == m){ count++; return; } if(n1 > n || m1 > m)return; int [][]arr = {{0,1},{1,0}}; for(int i = 0; i public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n, k, count = 0; n = sc.nextInt(); k = sc.nextInt(); int []arr = new int[n]; for(int i = 0; i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3