【蓝桥杯备赛】2021年第十二届蓝桥杯省赛第二场(5月9日)真题C++ B组 未完待续……

题目结构

项目题型分值题型
第一题结果填空5求余
第二题结果填空5大数求余
第三题结果填空10
第四题结果填空10
第五题结果填空15
第六题程序设计15
第七题程序设计20
第八题程序设计20
第九题程序设计25
第十题程序设计25

填空题

第一题 求余 1

【问题描述】
在 C/C++/Java/Python 等语言中,使用 % 表示求余,请问 2021%20 的值是多少?

cout<<2021%20<<endl;

答案:1

第二题 双阶乘

【问题描述】
一个正整数的双阶乘,表示不超过这个正整数且与它有相同奇偶性的所有正整数乘积。n 的双阶乘用 n!! 表示。
例如:
3!! = 3 × 1 = 3。
8!! = 8 × 6 × 4 × 2 = 384。
11!! = 11 × 9 × 7 × 5 × 3 × 1 = 10395。
请问,2021!! 的最后 5 位(这里指十进制位)是多少?
注意:2021!! = 2021 × 2019 × · · · × 5 × 3 × 1。
提示:建议使用计算机编程解决问题。

解题思路:不断对其取余操作得到后五位



#include <iostream>
#include <algorithm>
#include <cmath>
using namespace std;
int main()
{
    int n=2021;
    int ans=1;
    for(int i=n;i>0;i-=2){
        ans=(ans*i)%100000;
    }
    cout<<ans<<endl;
    return 0;
} // namespace std;

答案:59375


第三题 格点

如果一个点 (x, y) 的两维坐标都是整数,即 x ∈ Z 且 y ∈ Z,则称这个点为一个格点。
如果一个点 (x, y) 的两维坐标都是正数,即 x > 0 且 y > 0,则称这个点在第一象限。
请问在第一象限的格点中,有多少个点 (x, y) 的两维坐标乘积不超过 2021, 即 x · y ≤ 2021。
提示:建议使用计算机编程解决问题。

解题思路:双层for循环即可解决

#include <iostream>
#include <cmath>
#include <algorithm>
#include <iomanip>
using namespace std;
int main(){
    int cnt=0;
    for(int x=1;x<=2021;x++){
        for(int y=1;y<=2021;y++){
            if(x*y<=2021){
                cnt++;
            }
        }
    }
    cout<<cnt<<endl;
    return 0;
}

答案:15698

第四题 整数分解

将 3 分解成两个正整数的和,有两种分解方法,分别是 3 = 1 + 2 和3 = 2 + 1。注意顺序不同算不同的方法。
将 5 分解成三个正整数的和,有 6 种分解方法,它们是 1+1+3 = 1+2+2 = 1 + 3 + 1 = 2 + 1 + 2 = 2 + 2 + 1 = 3 + 1 + 1。
请问,将 2021 分解成五个正整数的和,有多少种分解方法?

解题思路:排列组合中的隔板法,在2021个球中插入4个隔板。所以是C2020,4,所以计算可得。

cout<<2020*2019*2018*2017/4/3/2<<endl;

答案:691677274345

第五题 城邦

【问题描述】
小蓝国是一个水上王国,有 2021 个城邦,依次编号 1 到 2021。在任意两个城邦之间,都有一座桥直接连接。
为了庆祝小蓝国的传统节日,小蓝国政府准备将一部分桥装饰起来。
对于编号为 a 和 b 的两个城邦,它们之间的桥如果要装饰起来,需要的费用如下计算:找到 a 和 b 在十进制下所有不同的数位,将数位上的数字求和。
例如,编号为 2021 和 922 两个城邦之间,千位、百位和个位都不同,将这些数位上的数字加起来是 (2 + 0 + 1) + (0 + 9 + 2) = 14。注意 922 没有千位,千位看成 0。为了节约开支,小蓝国政府准备只装饰 2020 座桥,并且要保证从任意一个城邦到任意另一个城邦之间可以完全只通过装饰的桥到达。
请问,小蓝国政府至少要花多少费用才能完成装饰。
提示:建议使用计算机编程解决问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Lydia.na

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值