且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

【蓝桥杯回力篇】蓝桥模拟赛【摆烂day1】

更新时间:2022-05-20 02:10:36

????欢迎关注
????[蓝桥杯每日练习合集】
????共同努力

前言

最近在忙的写东西,蓝桥已经是摆烂的状态了。
终归是交了钱的,还是得在最后十天练习练习。

1.A的个数

以下是一个 25 行 25 列的字母矩阵,全部由字母 A 和 B 组成。

AAAAAAABABBAABABABAAAAAAA
ABBBBBABBAABBBBBABABBBBBA
ABAAABABBBABAABBBBABAAABA
ABAAABABBBBBAABAABABAAABA
ABAAABABBABABBABABABAAABA
ABBBBBABBBABAABBBBABBBBBA
AAAAAAABABABABABABAAAAAAA
BBBBBBBBABAABABBBBBBBBBBB
AABAABABBAAABBAAABABBBBBA
ABBABABBBABBAAAABBBBAAAAB
BBBBAAABABAABABAABBBAABBA
BBAABABABAAAABBBAABBAAAAA
ABABBBABAABAABABABABBBBBA
AAAABBBBBABBBBAAABBBABBAB
AABAABAAABAAABAABABABAAAA
ABBBBBBBBABABBBBABAABBABA
ABBBAAABAAABBBAAAAAAABAAB
BBBBBBBBABBAAABAABBBABBAB
AAAAAAABBAAABBBBABABAABBA
ABBBBBABBAABABAAABBBABBAA
ABAAABABABBBAAAAAAAAAABAA
ABAAABABABABBBABBAABBABAA
ABAAABABBABBABABAABAABAAA
ABBBBBABABBBBBABBAAAABAAA
AAAAAAABAABBBAABABABBABBA

请问在这个矩阵中有多少个字母A?

思路:

这是一道签到题目。用python方便一点点。

ac代码:

a="AAAAAAABABBAABABABAAAAAAAABBBBBABBAABBBBBABABBBBBAABAAABABBBABAABBBBABAAABAABAAABABBBBBAABAABABAAABAABAAABABBABABBABABABAAABAABBBBBABBBABAABBBBABBBBBAAAAAAAABABABABABABAAAAAAABBBBBBBBABAABABBBBBBBBBBBAABAABABBAAABBAAABABBBBBAABBABABBBABBAAAABBBBAAAABBBBBAAABABAABABAABBBAABBABBAABABABAAAABBBAABBAAAAAABABBBABAABAABABABABBBBBAAAAABBBBBABBBBAAABBBABBABAABAABAAABAAABAABABABAAAAABBBBBBBBABABBBBABAABBABAABBBAAABAAABBBAAAAAAABAABBBBBBBBBABBAAABAABBBABBABAAAAAAABBAAABBBBABABAABBAABBBBBABBAABABAAABBBABBAAABAAABABABBBAAAAAAAAAABAAABAAABABABABBBABBAABBABAAABAAABABBABBABABAABAABAAAABBBBBABABBBBBABBAAAABAAAAAAAAAABAABBBAABABABBABBA"
b=str(a)
sum=0
for i in b:
    if (i=='A'):
        sum=sum+1
print(sum)

答案

318

2.最2数字

如果一个整数的某个数位包含 2 ,则称这个数为一个“最2数字”。例如:102、2021 都是最2数字。
请问在 1(含) 到 2021(含) 中,有多少个最2数字。

思路

看上去是不难的哈,简单的遍历一下,因为是填空题,我们采用python来做会比较简单一点点。

AC代码

sum=0
for i in range(1,2022):
   c=str(i)
   for a in c:
       if(a=='2'):
           sum=sum+1
           break
print(sum)

答案

564

3.最少次数

有一个整数 A=2021,每一次,可以将这个数加 1 、减 1 或除以 2,其中除以 2 必须在数是偶数的时候才允许。
例如,2021 经过一次操作可以变成 2020、2022。
再如,2022 经过一次操作可以变成 2021、2023 或 1011。
请问,2021 最少经过多少次操作可以变成 1。

答案提交   这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

思路

可以用数学的思路,如果a++/2的下一次不是偶数,则走a--。
a%2==0,则可以正常/2计算。

AC代码

#include<bits/stdc++.h>
using namespace std;
int main(){
    int a=2022,sum=0;
    while(a!=1)
    {
        if(a%2==0)
        {
            a/=2;
        }
        else
        {
            if((a+1)/2%2==0)
            {
                a++;
            }
            else
                a--;
        }
        sum++;
    }

    cout<<sum;
    return 0;
}

答案

14