十六/16届蓝桥杯JavaB组填空题(前两题题解)
第一题 试题A :逃离高塔
思路:
注意到①2025^3超int
②要判断末尾/个位数字为“3”,String类中刚好有方法endsWith()可以代劳判断后缀
考场上没怎么想,反正BigInteger底层就是字符串,方便转换,配合String,也不用担心超,抬手就用了😂
public class Main {
public static void main(String[] args) {
int count = 0;
for (int i = 1; i <=2025 ; i++) {
BigInteger b = new BigInteger(i +"").pow(3);
if (b.toString().endsWith("3")) {
System.out.println(b);
count++;
}
}
System.out.println(count);
}
}
输出答案: 202
第二题 试题B :消失的蓝宝
思路: 代入找规律
为什么想到找规律:暴力一下,很快啊,就出结果了——啥也没有输出😂,你以为出故障了,又运行一遍,还是啥也没有,终于你知道这题结果超int了😂
我又用long跑半天,还是没结果 , 结合蓝桥杯的尿性,以及它给的数字很随意,就两个比赛日期 所以我断定本题要么有技巧,要么有规律
①了解蓝桥杯官方小题考点的,无论是从官方书籍,还是官方直播考点解答,还是他们每月一次赛前冲刺课广告列举的内容中了解的,都知道小题考点最常见的:日期、模运算、素数、GCD、LCM总之这题,一上来让我想到GCD最大公约数、LCM最小公倍数
②公式N1×N2 = GCD×LCM 同样BigInteger有gcd()方法
求得GCD = 1 所以20240413和20250412互质/素
那么LCM = 20240413×20250412 = 409876702300156
③找规律:在②的基础上还是没什么想到是何种技巧
那就试试找规律:既然你已经打算找规律,那不如直接代入找规律,这样最直接
换两组简单数字代入看看情况,咱也保证N1、N2两个数字互质/素
如下:
终于,你发现了规律:LCM-(N1+N2) 就是我们想要的答案
409876702300156 - (20240413 + 20250412) = 409876661809331
可验算符合题目要求
答案: 409876661809331
以上是我的个人题解,美中不足的是,第二题最后数字不符合,像题目20240413这样的时间格式,不知道官方最后答案是否会不同。如果最后答案有误,本次题解将被删除。
---------------------------------------------------------------------------------------------
补充
结果出来了,JavaB省二,喜提捐款🤣
我没做出来几题,所以第二个填空应该对了吧