题解:P12266 [蓝桥杯 2024 国 Python B] 不同的总分值

· · 题解

嘿嘿,我又来发题解了。

题意

现在,有十道题,每道题的分数分别是:

5 分,5 分,10 分,10 分,15 分,15 分,20 分,20 分,25 分,25 分。

现在,得分不同有多少情况。

首先,我们可以确定:

1.最少分数为 0。
2.最多分数为 150。

然后,我们来思考答案。

思路 1.0

由于数字只有十个,所以,我们可以挨个枚举,知道从 0 枚举到 150 为止,这个是手算。

思路 2.0

都说了,我不喜欢手算!

除了手算,我们还有没有别的方法呢?

答案是有的,请看:

观察到,每个数字,都有一个比它小 5。

所以,每个都会其中一个可能有多 5。

那么,我们可以从 0 到 150,通过等差数列来求得,答案为 31!

代码:

#include<bits/stdc++.h>
int main(){
    puts("31");
}

后记

本篇题解到此结束。

这次,我们采用了一些数学方法以及一些观察,快速算出了答案,虽然对本题没有任何意义,但是,提升了我们的思维,这对以后说不定有帮助呢。