第十五届蓝桥杯 Java B组题解
A 报数游戏
问题描述
小蓝和朋友们在玩一个报数游戏。由于今年是2024年,他们决定要从小到大轮流报出是20或24倍数的正整数。前10个被报出的数是:20,24,40,48,60,72,80,96,100,120。请问第202420242024个被报出的数是多少?
答案提交
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。
题解
轮流报出20、24的倍数,这类输出的一般都有规律。先考虑到20、24的因数关系,除以最小公因数4得到5、6,可视为两条输出数值的路径。
列出数据如下:
0 | 1 | 2 | 3 | 4 | 5 | 6 |
---|---|---|---|---|---|---|
20 | 40 | 60 | 80 | 100 | 120 | 140 |
24 | 48 | 72 | 96 | 120 | 144 | 168 |
最小公倍数会重复,不能直接取两条路径的值
去重后数据如下:
0 | 1 | 2 | 3 | 4 | 5 | 6 |
---|---|---|---|---|---|---|
20 | 40 | 60 | 80 | 100 | 140 | 160 |
24 | 48 | 72 | 96 | 120 | 144 | 168 |
0 | 1 | 2 | 3 | 4 | 5 | 6 |
---|---|---|---|---|---|---|
20 | 40 | 60 | 80 | 100 | 120+20 | 120+40 |
24 | 48 | 72 | 96 | 120 | 120+24 | 120+48 |
显然每10位循环一次,记
b a s e = [ 20 ,