最近回顾了Java B组的试题,深有感触:脑子长时间不用会锈住,很可怕。
兄弟们,都给我从被窝里爬起来,赶紧开始卷!!!
2022年第十三届蓝桥杯Java B组(第一部分 A~F题)
一、填空题
试题 A: 星期计算
思路与题解:
试题 B: 山
思路与题解:
二、编程题
试题 C: 字符统计
思路与题解:
试题 D: 最少刷题数
思路与题解:
试题 E: 求阶乘
思路与题解:
试题 F: 最大子矩阵
思路与题解:
一、填空题
试题 A: 星期计算
本题总分:5 分
【问题描述】
已知今天是星期六,请问 天后是星期几?注意用数字 1 到 7 表示星期一到星期日。
【答案提交】
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。
思路与题解:
A题显然是个签到题,很多人第一思路就是“取余”,思路没错,但是如果直接暴力取余,那你就格局小了,哥们!
因为20的22次幂(大于2^88)明显不在long类型的范围内【(2^63)-1】,那么就要分步骤做取余运算:
根据公式: (a * b) % p = (a % p * b % p) % p
20^22相当于22个20做了21次乘法运算,所以我的思路是把每一次乘法的结果取余,这样,别说是long可以装得下,就算是int也手拿把掐了!
public static void Java_B_A(){ int n = 20; for(int i=0;i