2020第十一届蓝桥杯软件类省赛第二场C/C++ 大学 B 组 填空题题解(未拿省一的个人反思)

试题 A: 门牌制作

【问题描述】
小蓝要为一条街的住户制作门牌号。
这条街一共有 2020 位住户,门牌号从 1 到 2020 编号。
小蓝制作门牌的方法是先制作 0 到 9 这几个数字字符,最后根据需要将字
符粘贴到门牌上,例如门牌 1017 需要依次粘贴字符 1、 0、 1、 7,即需要 1 个
字符 0, 2 个字符 1, 1 个字符 7。
请问要制作所有的 1 到 2020 号门牌,总共需要多少个字符 2?

答案:

624

试题 B: 既约分数

【问题描述】
如果一个分数的分子和分母的最大公约数是 1,这个分数称为既约分数。
例如,都是既约分数。

请问,有多少个既约分数,分子和分母都是 1 到 2020 之间的整数(包括 1
和 2020)?

解析:

直接调用__gcd(),gcd==1即++

答案:

2481215

试题 C: 蛇形填数

如下图所示,小明用从 1 开始的正整数“蛇形”填充无限大的矩阵。
1 2 6 7 15 :::
3 5 8 14 :::
4 9 13 :::
10 12 :::
11 :::
:::

容易看出矩阵第二行第二列中的数是 5。请你计算矩阵中第 20 行第 20 列
的数是多少 ?

答案:

761

反思:

这次比赛,我败在了这个题上。当然不能怪它,这的确是个好题,怪我自己的临场发挥不行。

由于怕推导公式出错,我进行了模拟,但是由于坐标多加多减以及其他问题,调试了长达一个半小时。直接导致心态爆炸,七数码没空做,大题草草了事,很是后悔。

赛后,五分钟连写带调,出结果。果然,心态,还得练。

#include<iostream>
#include<cstring>
#include<algorithm>
#include<cmath>
using namespace std;
int m[111][111];
int main()
{
    int cnt=2;
    int ok=0;
    int ans=2;
    int x=1,y=2;m[1][1]=1;
    while(x<=50&&y<=50)
    {
        if(!ok)
        {

            for(int i=1;i<=ans;i++)
            {
                m[x][y]=cnt;
                cnt++;
                x++;y--;
            }
            x--;y++;
            x+=1;
            ok=1;
        }
        else
        {
            for(int i=1;i<=ans;i++)
            {
                m[x][y]=cnt;
                cnt++;
                x--;
                y++;    
            }
            x++;
            y--;
            y++;
            ok=0;
        }
        ans++;
    }
    cout<<m[20][20];
//    for(int i=1;i<=30;i++)
//    {
//        for(int j=1;j<=30;j++)
//            cout<<m[i][j]<<" ";
//            cout<<endl;
//    }
}

试题 D: 跑步锻炼

【问题描述】
小蓝每天都锻炼身体。
正常情况下,小蓝每天跑 1 千米。如果某天是周一或者月初(1 日),为了
激励自己,小蓝要跑 2 千米。如果同时是周一或月初,小蓝也是跑 2 千米。
小蓝跑步已经坚持了很长时间,从 2000 年 1 月 1 日周六(含)到 2020 年
10 月 1 日周四(含)。请问这段时间小蓝总共跑步多少千米?

答案:

8879

反思:

2020 9 30之前的全模拟算对了,但是在10月1出了差错,明明是1号应该+2,但是我+1。真的很想给自己一巴掌。

试题 E: 七段码

【问题描述】
小蓝要用七段码数码管来表示一种特殊的文字。

上图给出了七段码数码管的一个图示,数码管中一共有 7 段可以发光的二 极管,分别标记为 a, b, c, d, e, f, g。
小蓝要选择一部分二极管(至少要有一个)发光来表达字符。在设计字符 的表达时,要求所有发光的二极管是连成一片的。
例如: b 发光,其他二极管不发光可以用来表达一种字符。
例如: c 发光,其他二极管不发光可以用来表达一种字符。这种 方案与上 一行的方案可以用来表示不同的字符,尽管看上去比较相似。
例如: a, b, c, d, e 发光, f, g 不发光可以用来表达一种字符。
例如: b, f 发光,其他二极管不发光则不能用来表达一种字符,因为发光 的二极管没有连成一片。
请问,小蓝可以用七段码数码管表达多少种不同的字符?

另外写了篇较为详细的题解:

https://www.cnblogs.com/liyexin/p/13893257.html

由于很多评测网站还没有上线本次大题。先写到这儿吧。

原文地址:https://www.cnblogs.com/liyexin/p/13893340.html